Anzeige
Archiv - Navigation
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

prüfen welche Excelversion benutzt wird

prüfen welche Excelversion benutzt wird
18.02.2006 10:16:44
Korl
Hallo,
ist es möglich festzustellen, welche Excelversion genutzt wird.
Hintergrund ist der, dass ich einen Code verwende, der erst ab xl2002 läuft.
Nun würde ich gerne den ausführenden Button automatisch visible setzen, wenn kleiner xl2002 benutzt wird.
Ist so etwas möglich?
Gruß Korl

28
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: prüfen welche Excelversion benutzt wird
18.02.2006 10:18:51
ransi
hallo korl
schau dir mal application.version an.
ransi
AW: prüfen welche Excelversion benutzt wird
18.02.2006 10:54:56
Korl
Hallo ransi,
danke für Deinen Tipp und Dein Interesse, habe mich bereits daran versucht.
siehe hier:
Private Sub CommandButton2_Click()
'Pfad für den Import der Ortslist
 Dim strPfad
If Application.Version < 10 Then
    CommandButton2.Enabled = False
    MsgBox (test)
    Exit Sub
 Else
On Error Goto zu
  With Application.FileDialog(msoFileDialogFolderPicker)
    .AllowMultiSelect = False
    .Show
    strPfad = .SelectedItems(1)
  End With
 
Range("B8") = strPfad & "\"
End If
Exit Sub
zu:
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14


Irgendwie ist meine Schreibweise noch falsch, denn er schaltet nicht ab.
Gruß Korl
Anzeige
AW: prüfen welche Excelversion benutzt wird
18.02.2006 11:02:15
andreas e
Hallo Korl,
das hängt sicher damit zusammen, daß du auf kleiner 10 abfragst -
aber die Versionsangabe kommt als Textstring rüber -
bei mir zB 10.0

Sub test()
msg = MsgBox(Application.Version)
If msg < 11 Then
MsgBox "Nein"
Else
MsgBox "JA"
End If
End Sub

Gruß
Andreas E
AW: prüfen welche Excelversion benutzt wird
18.02.2006 11:07:39
ransi
hallo korl
versuch mal so:
If Application.Version < "10.0" Then
ransi
AW: prüfen welche Excelversion benutzt wird
18.02.2006 11:12:16
andreas e
Halo ransi,
ich vermute auch dieser Schuß geht nach hinten los -
Bei mir zB ist application.version 10.0
wenn ich auf kleiner 10.02 als String abgreife kommt immer noch nein -
Ich denke da wird vorher eine Umwandlung des Strings in eine Zahl notwendig sein, oder ?

Sub test()
msg = MsgBox(Application.Version)
If msg < "10.02" Then
MsgBox "Nein"
Else
MsgBox "JA"
End If
End Sub

Anzeige
AW: prüfen welche Excelversion benutzt wird
18.02.2006 11:22:27
andreas e
Hallo,
ein (wenn auch etwas schräger) Ansatz wäre das linke Zeichen auszulesen -
wenn dieses ungleich 1 ist dann ist die Version kleiner 10 -
solange es keinen Sprung nach 20 macht bei M$ -:)

Sub test()
msg = MsgBox(Application.Version)
alszahl = Left(msg, 1)
'MsgBox alszahl
If msg <> 1 Then
MsgBox "Nein"
Else
MsgBox "JA"
End If
End Sub

Ein Einzeiler den sogar ich verstehe ...
18.02.2006 11:30:59
andreas e
Hallo Nepumuk,
endlich mal ein Code von Dir der mmeinen Gehirnwindungen keine Schlingen bereitet -:)
schönes WE
AW: Ein Einzeiler den sogar ich verstehe ...
18.02.2006 11:40:05
Nepumuk
Hallo Andreas,
die Versionsabfrage wird aber nichts nutzen, da Korl Objekte (FileDialog) und Konstanten (msoFileDialogFolderPicker) benutzt, welche es in xl2000 nicht gibt. Da hilft nur bedingte Kompilierung. Damit das klappt, muss beim öffnen der Mappe eine Bedingungskonstante erzeugt werden. Das setzt 1. mal voraus, dass kein Projektschutz gesetzt wurde und 2. ab XP der Zugriff aus das Projekt gestattet wurde. Außerdem muss für niedrigere Versionen als XP ein Ersatz für den FileDialog rein.
Gruß
Nepumuk

Anzeige
AW: prüfen welche Excelversion benutzt wird
18.02.2006 12:52:36
Korl
Hallo ransi und andreas E,
grundsätzlich funktioniert die Abfrage mit einer banalen Ausführung, leider nicht mit meiner Ausführung.
1. Einmal kennt xl2000 nicht dieses "Application.FileDialog(msoFileDialogFolderPicker)"
der Debugger springt trotzdem an "Fehler beim Kompilieren".
2. Der CommandButton2 wird nicht auf "CommandButton2.Enabled = False" gesetzt.
Könnt Ihr mir bitte noch einen Tipp geben?
Gruß Korl
AW: prüfen welche Excelversion benutzt wird
18.02.2006 13:01:13
Korl
Hallo Nepumuk,
entschuldige bitte, ich bin wärend des Schreibens abgelenkt worden und habe Deine Antwort jetzt erst wahr genommen.
Danke für Deine Antwort, Du hast es auf den Punkt gebracht.
Ich kenne die Kollegen die mit meinen Projekt arbeiten würden und kann es dann vorher manuell umstellen.
War nur der Meinung es könnte automatisch funktionieren.
Gruß Korl
Anzeige
AW: prüfen welche Excelversion benutzt wird
18.02.2006 13:09:24
ransi
hallo korl
Alternativ zu filedialogFolderPicker und versionsunabhängig:


Option Explicit
Private Sub CommandButton2_Click()
Call get_Folder("Was soll ich machen?""C:\Eigene Dateien")
End Sub
Sub get_Folder(Optional capt, Optional initF)
'K.Rola
Dim objShell As Object, objFolder As Object, objItem As Object
Set objShell = CreateObject("Shell.Application")
With objShell
  Set objFolder = .BrowseForFolder(0&, capt, 0, initF)
End With
If Not objFolder Is Nothing Then
  Set objItem = objFolder.Self
  Range("B8") = objItem.Path
End If
End Sub

     Code eingefügt mit Syntaxhighlighter 4.0


vieleicht hilfts weiter
ransi
Anzeige
AW: prüfen welche Excelversion benutzt wird
18.02.2006 13:33:58
ransi
Hallo nepumuk
nee.
Sieht genauso aus wie Der " getopenfilename" oder dialogs(xldialogsaveas) und ähnliche.
Nur das in filedialogFolderPicker keine dateien angeboten werden sondern nur verzeichnisse.
ransi
AW: prüfen welche Excelversion benutzt wird
18.02.2006 15:36:25
Korl
Hallo ransi,
danke für Deinen Code, er funktioniert in xl2002 leider nicht in xl2000.
Der Debugger zeigt auf "C:\Eigene Dateien" und sagt Fehler beim Kompilieren: Erwartet: Listentrennzeichen oder)
ransi, wenn die Pfaderzeugung nicht einzuholen ist, denn gehts halt nicht.
Mir würde es vollkommen reichen, wenn ich den "CommandButton2" auf visible setzen kann wenn xl2000 benutzt wird.
Lässt sich das eventuell über Workbook_Open realisieren?
Gruß Korl
Hallo Nepumuk,
das Fenster sieht so aus:
Userbild
Gruß Korl
Anzeige
was haltet Ihr davon?
18.02.2006 17:21:08
MichaV
Hallo,
kanns leider nicht auf XL200x testen. Auf XL2000 läufts aber ;o)

Option Explicit
Private Sub CommandButton2_Click()
'Pfad für den Import der Ortslist
Dim strPfad
If Val(Application.Version) < 10 Then
Dim msoFileDialogFolderPicker '!!!!
CommandButton2.Enabled = False
MsgBox ("bla")
Exit Sub
Else
On Error GoTo zu
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
strPfad = .SelectedItems(1)
End With
Range("B8") = strPfad & "\"
End If
Exit Sub
zu:
End Sub

Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: was haltet Ihr davon?
18.02.2006 17:49:05
Korl
Hallo Micha,
schön das Du auch da bist. ;-)
Auf xl2000 läuft der Code, dass heißt er schaltet den CommandButton2 um, auf "Enabled = False"
In xl2002 reagiert der Code nicht.
Gruß Korl
AW: was haltet Ihr davon?
18.02.2006 18:01:10
MichaV
Hallo,
wie, er reagiert nicht? Gehe mal mit F8 in Einzelschritten durch. Was passiert in XL2002?
Und dann gib mal im Direktfenster
? msoFileDialogFolderPicker
ein. Welche Zahl wird dann angezeigt?
Gruß- Micha
PS: Rückmeldung wäre nett.
AW: was haltet Ihr davon?
18.02.2006 18:23:32
Korl
Hallo Micha,
im Direktfenster habe ich "? msoFileDialogFolderPicker" ausgeführt und "4" erhalten.
Wenn ich in xl2002 hier "If Val(Application.Version) < 10 Then"
den Wert auf "11" erhöhe, schaltet er mir den CommandButton2 auf "Enabled = False"
"wie, er reagiert nicht?"
Wenn ich die "10" verwende springt der Code garnicht erst an.
Gruß Korl
Anzeige
bedingte Kompilierung simulieren
18.02.2006 18:31:12
MichaV
Hallo Korl,
ich kann Dir 2 Tips zum Thema "msoFileDialogFolderPicker gibts in XL2000 nicht und erzeugt dort immer eine Fehlermeldung" geben. Die Sache "meine XL-Version wird nicht richtig erkannt" ist ein anderes Feld. Darum lass ich die Frage mal weiter offen.
1.: Schreibe nicht msoFileDialogFolderPicker sondern einfach 4. Damit ist die in XL2000 unbekannte Konstante raus und durch den entsprechenden Wert ersetzt. Problem: in noch höheren Versionen kann msoFileDialogFolderPicker <> 4 sein, Dein Code funzt dann natürlich nicht mehr.
oder 2: Sie mein Beispiel. Wenn XL2000 erkannt, dimensioniere im XL2000- Teil msoFileDialogFolderPicker einfach als Variable. Das geht, weil die Konstante ja nicht existiert. Der Debugger meckert dann nicht, weil er msoFileDialogFolderPicker nicht kennt. In Versionen höher XL2000 sollte es keine Probleme geben (ungetestet!), weil die DIM- Anweisung ja nicht abgearbeitet wird.
Gruß- Micha
AW: bedingte Kompilierung simulieren
18.02.2006 19:09:47
Korl
Hallo Micha,
ich danke Dir erst mal wieder für Deine Mühe.
In xl2000 habe ich mal die "<10" herunter gesetzt auf "<9", dadurch entsteht der gleiche Effekt wie bei mir in xl2002 mit den Wert "<10".
Also, der Code springt garnicht erst an.
Wenn Du noch Lust hast, kannst Du es nachvollziehen. ;-)
Lässt sich das Ganze nicht über ein Ereignis klären.
In meiner Tabelle sind nur 3 Zellen offen, die ausgefüllt werden müssen, dabei Abfrage welche Excelversion benutzt wird und dann " CommandButton2.Enabled = False" setzen.
Und fertig! ;-)
Was hälst Du davon?
Gruß Korl
AW: bedingte Kompilierung simulieren
18.02.2006 19:12:28
MichaV
Hallo,
nimm mal das On Error raus. Was sagt er dann in XL2002?
Gruß- Micha
PS: Rückmeldung wäre nett.
AW: bedingte Kompilierung simulieren
18.02.2006 19:38:29
Korl
Hallo Micha,
der Debugger zeigt auf "With Application.FileDialog(msoFileDialogFolderPicker)"
und sagt
Laufzeitfehler '_2147467259(80004005)':
Die Methode 'FileDialog' für das Objekt
'_Application' ist fehlgeschlagen
Gruß Korl
halbe Kraft zurück
18.02.2006 21:00:01
MichaV
Hallo Korl,
das mit dem DIM funzt so nicht, sorry, mein Fehler. Dim- Anweisungen werden immer zuerst ausgeführt, egal wo im Code sie stehen. Also mein Beispiel und Tip 2 sind falsch.
Versuch, eine 4 reinzuschreiben oder stell die Frage wieder auf offen ;o)
Gruß- Micha
AW: bedingte Kompilierung simulieren
18.02.2006 21:07:09
schauan
Hallo allerseits,
nur mal ein kleiner Hinweis. Application.Version liefert einen String. Also Val(Application.Version) verwenden.
Ausserdem ist wirklich die "bedingte Kompilierung" von Vorteil, alsomit dem # vor dem If ... (siehe Excel-Hilfe)
AW: bedingte Kompilierung simulieren
18.02.2006 22:24:28
Korl
Hallo André,
danke für den Tipp, das war genau das, was mir jetzt gefehlt hat.
Obwohl ich es schon bei Micha gesehen hatte.
In meinem Test bin ich soweit, dass dieser Code macht was er soll unter xl2000 sowie xl2002
Sub test()
 If Val(Application.Version) > 9 Then
    Worksheets("Tabelle1").CommandButton1.Enabled = True
  Else
    Worksheets("Tabelle1").CommandButton1.Enabled = False
 End If
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14


Gruß Korl
AW: bedingte Kompilierung simulieren
18.02.2006 22:27:03
Guido
Hi,
oder einfach:

Sub test()
Worksheets("Tabelle1").CommandButton1.Enabled = Val(Application.Version) > 9
End Sub

mfg Guido
AW: bedingte Kompilierung simulieren
18.02.2006 23:30:50
Korl
Hallo Guido,
danke für Deine Verkürzung des Codes, werde ich noch ausprobieren und dann auch sicherlich verwenden. ;-)
Gruß Korl

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige