Dynamisch kompilieren?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Dynamisch kompilieren?
von: RoadRunner
Geschrieben am: 20.04.2005 11:03:08
Hallo zusammen,
habe folgendes Problem, das ich wie folgt lösen möchte:
Ich habe eine XL-Anwendung unter Version 9.0 geschrieben und nach Version 10.0 portiert. Dabei haben sich ein paar Verweise geändert, einige sind nicht mehr erforderlich, einige nicht mehr bekannt. Soweit so gut.
Starte ich diese nun auf Version 10.0 lauffähige Version unter 9.0 hängt sich das Coding wegen fehlender Verweise auf - auch klar.
Nun möchte ich im Coding zum Zeitpunkt Workbook_Open prüfen, ob das Project der Arbeitsmappe kompilierbar ist. Wenn nicht, möchte ich sauber aus der Anwendung aussteigen. Eine Abfrage auf die XL-Version möchte ich dabei aber nicht anwenden.
Alternativ: gibt es eine Möglichkeit die benötigten Verweise dynamisch beim Öffnen zu setzen (dies dann in Abhängigkeit von der XL-Version).
Vielen Dank für Eure Unterstützung!!!
VG
RoadRunner

Bild

Betrifft: AW: Dynamisch kompilieren?
von: Rolf Beißner
Geschrieben am: 20.04.2005 11:54:55
Hallo,
vielleicht bringt dich dieser Test von K.Rola weiter
fG
Rolf
'Gruß K.Rola am 6.4.2005

Sub Verweise_testen()
Dim objRef As Object
With ThisWorkbook.VBProject
  For Each objRef In .References
    MsgBox objRef.FullPath & Chr(10) & Chr(10) & _
    "Verweis ist " & IIf(objRef.IsBroken, "beschädigt!", "gültig!")
  Next
End With
End Sub

Bild

Betrifft: AW: Dynamisch kompilieren?
von: RoadRunner
Geschrieben am: 20.04.2005 13:25:43
Hallo Rolf,
vielen Dank für die Antwort.
Hilft mir aber nur ein bisschen weiter. Ich glaube, die Verweise in Abhängigkeit der Version zu setzen, ist mir für diese Anwendung zu komplex. Lieber wäre mir da der saubere Ausstieg bei nicht fehlerfreier Kompilierbarkeit...
VG
RoadRunner
Bild

Betrifft: AW: Dynamisch kompilieren?
von: Rolf Beißner
Geschrieben am: 20.04.2005 15:48:29
Hallo RR,
wie wär's, wenn du den ReferenceCheck machst
und dann bei .Isbroken=true aussteigst?
fG
Rolf
Bild

Betrifft: AW: Dynamisch kompilieren?
von: RoadRunner
Geschrieben am: 20.04.2005 16:32:25
Hallo Rolf,
auch keine schlechte Idee. Danke auch für diese Antwort.
Habe mit LateBinding (s. Verlauf des Threads) aber eine (nach Test hoffentlich) gute Lösung gefunden.
VG
RoadRunner
Bild

Betrifft: AW: Dynamisch kompilieren?
von: Holger
Geschrieben am: 20.04.2005 14:21:33
"Eine Abfrage auf die XL-Version möchte ich dabei aber nicht anwenden."
Wieso das denn?
Gruß Holger
Bild

Betrifft: AW: Dynamisch kompilieren?
von: RoadRunner
Geschrieben am: 20.04.2005 15:49:52
Hallo Holger.
Eigentlich nur Geschmacksache...;-)
Ausserdem interessiert mich grundlegend, ob man die Kompilierbarkeit zur Laufzeit prüfen kann...
Habe mir das Problem mit den Verweisen noch mal genauer angeschaut: Excel/VBA ist hier mal wieder klasse: z.B. werden die Verweise "Microsoft Excel 11.0 Object Library" oder "Microsoft Office 11.0 Object Library" unter Office 9 automatisch auf "Microsoft Excel 9.0 Object Library", etc. umgesetzt. Nur leider der Verweis auf die "Microsoft Outlook 11.0 Object Library" eben nicht und daher das Problem.
Probiere mal aus, explizit diesen Verweis beim Öffnen zu löschen und wieder neu anzulegen...
Übrigens hatte ich wohl aus Versehen die falsche Version angegeben nicht Excel-XP, sondern unter Excel 2003/9.0 tritt dieses Phänomen auf.
VG
Roadrunner
Bild

Betrifft: AW: Dynamisch kompilieren?
von: Holger
Geschrieben am: 20.04.2005 15:53:21
Hi,
verwende LateBinding dann bist du unabhängig von Verweisen.
mfg Holger
Bild

Betrifft: AW: Dynamisch kompilieren?
von: RoadRunner
Geschrieben am: 20.04.2005 16:16:51
Hallo Holger,
vielen Dank. Das war das Stichwort...
Hatte zwar (mehr unbewußt;-)) bereits LateBinding verwendet, mich aber auf zwei Outlook-Konstanten (olMailItem...) bezogen...
Teste das ganze dann mal und werde wohl noch mal zum Thema LateBinding lesen müssen...;-)
Vielen Dank für die Hilfe!!!
VG
RoadRunner
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dynamisch kompilieren?"