Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Bedingte Codeausführung per Attribut
23.06.2008 10:03:00
Dudzik
Hallo Excel VBA-Profis,
ich habe folgendes Problem. In einer Anwendung nutze ich das List.Object und möchte diese Anwendung auch unter Excel 2000 anwenden. Mit Hilfe der bedingten Compilation ist es möglich je nach Bedingung der vordefinierten Konstanten einen Teil des Codes ausführen zu lassen und den anderen Teil zu vernachlässigen. Leider muss ich dafür eine Konstante definieren. Ich möchte aber diese bedingte Codeausführung versionsabhängig gestalten, etwa wie im folgenden Codeabschnitt, so dass ich keine Konstante mit #Const blnVersion = True definieren kann:
Dim intZahl As Integer
Dim blnVersion As Boolean
intZahl = Val(Application.Version)
If intZahl = 11 Then
blnVersion = True
Else
blnVersion = False
End If
#If blnVersion Then
Msgbox "Anweisung für Version 11"
#Else
MsgBox "Anweisung für Version 9"
#End If
Leider funktioniert das nicht. Für jede Hilfe wäre ich sehr dankbar!!!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Codeausführung per Attribut
23.06.2008 10:13:00
Hajo_Zi
Hallo Nick,
warum schreibst Du nicht
If Val(Application.Version) =11Then
Msgbox "Anweisung für Version 11"
Elseif Val(Application.Version) =9 Then
MsgBox "Anweisung für Version 9"
End If

AW: Bedingte Codeausführung per Attribut
23.06.2008 10:54:00
Dudzik
Das List.Object ist ein Objekt, was erst in Excel 2003 eingeführt wurde. Es wandelt einen Bereich in eine Liste um. Beim Versuch der Codeausführung in Excel 2000 gibt es einen Laufzeitfehler, weil der Compiler das Objekt in Excel 2000 nicht erkennen kann. Somit reicht die einfache If Then Else Anweisung nicht aus. Ich muss unbedingt die Codeausführung bedingt compilieren.

Anzeige
AW: Bedingte Codeausführung per Attribut
23.06.2008 10:35:00
Rudi
Hallo,
was für ein List-Objekt?
Gruß
Rudi

AW: Bedingte Codeausführung per Attribut
23.06.2008 10:59:00
Dudzik
Das List.Object ist ein Objekt, was erst in Excel 2003 eingeführt wurde. Es wandelt einen Bereich in eine Liste um. Damit werden einige Datenbankfunktionen bereitgestellt.

AW: Bedingte Codeausführung per Attribut
23.06.2008 11:06:41
Rudi
Hallo,
danke für die Antwort, ich habe XP.
Es wird dir nichts anderes übrig bleiben, als unter 2000 zu entwickeln.
Gibt es in 2003 evtl eine Compilerkonstante, die du abfragen kannst?
Gruß
Rudi

AW: Bedingte Codeausführung per Attribut
23.06.2008 11:20:37
Dudzik
Ich kenne keine, die ich verwenden könnte, und in meinen VBA-Büchern wird nur auf dieses Vorgehen mit einer Konstanten verwiesen, wobei Monika Weber in Ihrem umfangreichen Handbuch die folgende Variante in einem UserForm.Activate Ereignis vorgestellt hat:
#If VBA6 = 0 Then
' Wenn XL97, dann
EnableWindow FindWindow("XLMAIN", Application.Caption), 1
#End If
Jedoch kann ich diese #If Anweisung nicht auf die Application.Version anwenden.

Anzeige
AW: Bedingte Codeausführung per Attribut
23.06.2008 11:33:00
Rudi
Hallo,
VBA6 ist eine Compilerkonstante.
Schau in die Hilfe.
Gruß
Rudi

AW: Bedingte Codeausführung per Attribut
23.06.2008 11:44:18
Dudzik
Du hast Recht - ich kann aber keine Compilerkonstante bezogen auf die Application.Version finden. Gibt es eine Möglichkeit, eine Applicationsversions-Konstante zu ermitteln?

AW: Bedingte Codeausführung per Attribut
23.06.2008 23:58:00
Daniel
Hi
probier doch mal Application.Version aus. Diese Funktion spuckt bei mir die Versions-Nr. der Excel-Application aus.
gruß, Daniel

AW: Bedingte Codeausführung per Attribut
24.06.2008 09:09:00
Dudzik
Application.Version ist nur für eine normale If Then Else Anweisung geeignet. Da ich ein neues Objekt im Code eingebunden habe, muss ich unbedingt eine Compilerkonstante einbeziehen, um diesen Code auch in älteren Versionen laufen zu lassen. Leider habe ich noch keine Compilerconstante für Excel 2003 gefunden. Vielleicht hast Du eine Idee, wie ich die ganze Sache umgehen kann.
Anzeige

180 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige