Hallo Leo,
Ich hab ein kleines problem, und zwar habe ich das design von
meiner excel tabelle in Excel 2003 programmiert das
funktioniert auch, da aber das design in excel 2007 ganz
anders ist müsste ich dafür ein extra code schreiben, die
frage ist jetzt nur wie lass ich den code festellen welche
version gerade läuft damit er über eine if abfrage entscheiden
kann welchen code er einliesst.
teste mal mit
Msgbox application.version
in 2003 und 2007 was angezeigt wird.
Das Ergebnis ist ein String.
with application
If .version = „11.0“ Then goto CODE2003
If version = „12.0“ Then goto CODE2007
'…
Goto ist so eine Sache, in dem Fall vielleicht tolerierbar, besser ist vielleicht
If .version = „11.0“ Then Call CODE2003
Klar geht auch Select case u.a.
Vba kennt auch bedingtes Kompilieren ähnlich wie C.
Mache dich schlau über „#IF“
Nachstehend ist ein Code von mir. Hintergrund des Codes ist/war, XL97 kennt kein Split(), ab XL2000 ist das bekannt.
Der Code benutzt dann entsprechend entweder Split() oder mein nachgebautes Split().
D.h. Versionsunabhängig kannst du in beiden Versionen Split() benutzen und merkst keinen Unterschied.
Ein Unterschied zwischen beiden Versionen ist die interne Variable VBA6.
Diese wird in dem fall benutzt um abzprüfen ob XL97 laüft oder XL2000.
Ob das auch mit XL2003 und XL2007 klappt weiß ich nicht.
Und, liegt schon lange zurück, aktuell weiß ich jetzt nicht mehr warum ich da VBA6 genommen habe und nicht application.Version.
und gibt es irgendwas wo ich noch drauf achten muss? bei den
beiden versionen, ich glaube der standart code geht bei beiden
oder? es gibt soweit ich weiss nur mehr möglichkeiten bei 2007
oder?
Nimm’s bitte nicht krumm, man schreibt das Standard.
Hier ist das völlig wurscht, aber wenn du dich mal irgendwo bewirbst…
Mehr Möglichkeiten auf jeden Fall. Aber auch „alte“, gar nicht schlechte, Vba-Befehle die es ersatzlos nicht mehr gibt.
FileSearch ist so eins davon.
Oder wenn du Code hast der die Symbolleisten verändert, den kannste auch in die Tonne kippen.
Vielleicht steht da irgendwo in 2007 bei Neuerungen/Änderungen in F1 eine Auflistung, wo was wie geändert wurde.
Vielleicht hat sich schon jemand damit befasst und was ins Internet gestellt.
Gruß
Reinhard
Function Split(ByVal strText As String, Optional Trenner As String = " ") As Variant
' Code by Reinhard 2007
Dim Anz As Long
If strText = "" Then Exit Function ' Reaktion wie im Original
#If VBA6 0 Then ' =XL97, VBA6 gibt es ab XL2000, vorher war es VBA5 bei XL97
Split = VBA.Split(strText, Trenner)
Exit Function
#End If
If strText = "" Then Exit Function ' Reaktion wie im Original
If Trenner = "" Then Trenner = " " ' Ersatz wie im Original
strText = strText & Trenner
ReDim C(0)
While InStr(strText, Trenner)
ReDim Preserve C(Anz)
C(Anz) = Left(strText, InStr(strText, Trenner) - 1)
strText = Mid(strText, InStr(strText, Trenner) + 1)
Anz = Anz + 1
Wend
Split = C
End Function