Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Niente di niente , ho provato anche con un office 2010 , mi registra il codice macro ma quando lo inserisco nel 2007 si inchioda su un'istruzione fondamentale brightness = 0
Ma anche se funzionasse il rischio è quello che con la versione 2007 funziona, con la 2003 non più.
Cerco una soluzione alternativa a questi Shape (casella di testo nel mio caso)
Continua a sfuggirmi qualcosa:
Public Sub m()
Dim lTop As Long
lTop = 5
ActiveSheet.Shapes.AddShape( _
msoShapeRoundedRectangle, 20, lTop, 105, 60 _
).Select
With Selection
.ShapeRange.ShapeStyle = 1
.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _
"ABCD"
.ShapeRange(1).Fill.Transparency = 1
.ShapeRange(1).Rotation = 270
End With
End Sub
Se il tuo problema è la versione, intercettala e utilizza due codici diversi.
Codice per verificare la versione di Excel installata sulla macchina. Nel caso siano installate più versioni, viene rilevata quella più nuova o quella di default per il programma.
Public Sub m()
Dim xlApp As New Excel.Application
Select Case Val(Mid(xlApp.Version, 1, _
InStr(1, xlApp.Version, ".") - 1))
Case 14
MsgBox "Excel 2010"
Case 12
MsgBox "Excel 2007"
Case 11
MsgBox "Excel 2003"
Case 10
MsgBox "Excel 2002(XP)"
Case 9
MsgBox "Excel 2000"
End Select
Set xlApp = Nothing
End Sub
Stessa cosa ma restituisce la versione del file che contiene la macro.
Public Sub m()
Select Case Val(Mid(Application.Version, 1, _
InStr(1, Application.Version, ".") - 1))
Case 14
MsgBox "Excel 2010"
Case 12
MsgBox "Excel 2007"
Case 11
MsgBox "Excel 2003"
Case 10
MsgBox "Excel 2002(XP)"
Case 9
MsgBox "Excel 2000"
End Select
End Sub
Questa Funzione restituisce il numero della versione attiva al momento della chiamata:
Public Function f() As Long
With Application
f = Val(Mid(.Version, 1, _
InStr(1, .Version, ".") - 1))
End With
End Function