Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mit Late binding Verweis auf MS Forms 2.0

Mit Late binding Verweis auf MS Forms 2.0
09.03.2008 20:02:00
Reinhard
Hallo Wissende,
ich habe da einen Code entwickelt, der den Verweis auf "Microsoft Forms 2.0 Object Libraray" benötigt.
Nun kriegen einige Anwender Fehlermeldungen, da sie obwohl es im Code ausdrücklich steht :-(, den Verweis nicht gesetzt haben.
Mir wurde geraten, diesen Verweis per "late binding" setzen zu lassen, denn dann spiele die Excelversion keine Rolle.
Gut, ich habe nach "late binding" gegoogelt, da dort gesucht, sehr viele Treffer, aber ich kam zu keiner Lösung, sehr oftmals stiess ich auf "createobject", was mir aber nicht weiterhilft falls ich das richtig verstanden habe, da es sich wohl darauf bezog aus Fremdprogrammen z.B. Excel mittels CreateObject zu starten und dann dadurch wohl der Verweis auf Excel automatisch gesetzt wurde o.ä.
Wie mache ich es also, daß mein Code sich den o.g. Verweis mittels "late binding" selbst setzt und
Dim xyz As New DataObject 'nur dafür brauche ich den Verweis
keinen Fehler mehr auslöst ?
Dankeschön ^ Gruß
Reinhard

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Fm20.dll
09.03.2008 20:19:00
ransi
Hallo Reinhard
Den Verweis auf die Fm20.dll kannst du nicht mit LateBinding setzen.
Jedenfalls nicht mit CreateObject.
Füge eine Userform in deine Datei ein, dann wird er gesetzt.
Die Uf kannst du danach auch wieder löschen.
ransi

AW: Fm20.dll
09.03.2008 21:47:00
Nepumuk
Hallo Reinhard,
du könntest den Verweis beim öffnen der Mappe prüfen und wenn er fehlt oder defekt ist neu setzen.
Das ganze funktioniert allerdings nur, wenn du in der Open-Routine keine Prozedur aufrufst, in welcher der Verweis schon benötigt wird, sonst erzeugst du einen Kompilierungsfehler. Beim Öffnen einer Mappe wird zuerst, so ein Open-Event oder ein Activate-Event abläuft das Modul "DieseArbeitsmappe" kompiliert.
Rufst du in dieser per Call eine Routine in einem Modul auf, wird dieses Modul auch kompiliert. Rufst du in diesem kompilierten Modul auch wieder per Call Routinen in weiteren Modulen auf, werden auch diese kompiliert.
Abschotten kannst du das nur, indem du im Modul "DieseArbeitsmappe" alle weiteren Routinen per Application.Run aufrufst. Denn darin ist der Prozedurname als String vorhanden, und das Modul in dem sich die angesprochene Routine befindet wird erst kompiliert wenn die Prozedur wirklich aufgerufen wird.
Hier die Routine zum setzen des Verweises:
Public Sub prcCheckReverence()
    Dim intIndex As Integer
    Dim blnFound As Boolean
    With ThisWorkbook.VBProject.References
        For intIndex = 1 To .Count
            If .Item(intIndex).GUID = "{0D452EE1-E08F-101A-852E-02608C4D0BB4}" Then
                blnFound = True
                If .Item(intIndex).IsBroken Then
                    .Remove .Item(intIndex)
                    .AddFromGuid GUID:="{0D452EE1-E08F-101A-852E-02608C4D0BB4}", _
                        Major:=2, Minor:=0
                End If
            End If
        Next
        If Not blnFound Then _
            .AddFromGuid GUID:="{0D452EE1-E08F-101A-852E-02608C4D0BB4}", _
            Major:=2, Minor:=0
    End With
End Sub

Gruß
Nepumuk

Anzeige
AW: Fm20.dll
10.03.2008 22:27:34
Reinhard
Dankeschön an ransi Timo Nepu und allen Interessierten,
ich habe wiede ein bißchen mehr von Excel-Vba verstanden *glaub*
Lieben Gruß
Reinhard

AW: Mit Late binding Verweis auf MS Forms 2.0
09.03.2008 20:21:00
Tino
Hallo,
um dies zu verhindern, hilft es dies etwas anders zu schreiben.
Bsp.
Aus:
Dim myOlApp As New Outlook.Application
mache:
Dim myOlApp As Objekt
Set myOlApp = CreateObject (“Outlook.Application”)

Nachtteil beim Schreiber der einzelnen Anweisungen, wird die Autovervollständigung
nicht mehr angezeigt.
Ich hoffe dies ist so korrekt, zumindest habe ich diese Erfahrung gemacht.
Daher lass ich die mal die Frage noch offen.
Gruß
Tino

Anzeige
Mal auf Nepumuk warten.;-)
09.03.2008 20:48:00
ransi
HAllo Tino
Alles richtig was du da gesagt hast, aber genau diesse Vorgehensweise geht bei der FM20.dll eben nicht.
Mal auf Nepumuk (Stellvertretend für alle anderen Cracks) warten.
Evtl. weiß der Rat.
ransi

noch offen owT.
09.03.2008 20:48:55
ransi
ransi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige