Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
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
Inhaltsverzeichnis

Verweis setzen in VBA zum x-ten mal

Verweis setzen in VBA zum x-ten mal
30.09.2020 13:21:26
Frank
Hallo zusammen,
meine Suche hier im Forum zum Thema Verweise setzen hat extrem viele Fundstellen gelistet. Leider ging es dabei ausschließlich um Bibliotheken u.ä. Ich muss aber eine selbst erstelltes AddIn einbinden. Habe es bisher über das Menü Extras gemacht. Klappt auch, hat aber viele Nachteile. Unter anderem, dass man einen kompletten Pfad zum Addin angeben muss. Wenn es dabei bliebe, wäre es ok. Aber Excel ändert schon mal von alleine den Pfad und passt ihn nicht immer richtig an, wenn ich die Mappe mit dem Verweis von einem anderen Ort aus öffne.
Daher ist mein Wunsch, mein AddIn dynamisch per VBA einzubinden.
Das Einbinden habe ich hinbekommen:
ActiveWorkbook.VBProject.References.AddFromFile ThisWorkbook.Path & "\AI_PKT.xlam"
Das wird dann aber gespeichert und beim erneuten öffnen der Mappe gibt es einen Konflikt, weil AddIn schon vorhanden.
Wie muss ich das AddIn wieder "Entbinden" kurz vor dem Schließen der Mappe?
ThisWorkbook.VBProject.References.Remove ThisWorkbook.Path & "\AI_PKT.xlam"
wird vom Debugger angemeckert, er mag das '&' nicht.
Bitte euch um Hilfe.
Gruß, Frank

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verweis setzen in VBA zum x-ten mal
30.09.2020 13:33:57
peterk
Hallo
Ungetestet:

Sub RemoveReference(myFileName As String)
Dim oReferenceS As Object
Dim oReference As Object
Set oReferenceS = ActiveWorkbook.VBProject.References
For Each oReference In oReferenceS
If oReference.FullPath = myFileName Then
Call oReferenceS.Remove(oReference)
End If
Next
End Sub
Aufruf der SUB mit:

call RemoveReference(ThisWorkbook.Path & "\AI_PKT.xlam")
Peter
nachgefragt
30.09.2020 13:36:04
Christian
Hallo Peter,
kann es sein, dass du einen Tippfehler im Makro hast. ganz am Ende, xlsm statt xlam?
Gruß
Christian
Anzeige
AW: Verweis setzen in VBA zum x-ten mal
30.09.2020 13:42:08
Frank
Hallo Peter,
danke für deinen Code.
Er funktioniert leider nicht, denn bei Öffnen der Mappe kommt nun folgender Fehler:
Laufzeitfehler 32813.
Name steht in Konflikt mit vorhandenem Modul, Projekt oder vorhandener Objektbibliothek.
Schaue ich nun in die Verweise über das Menü, ist mein AddIn auch noch eingetragen, was eigentlich durch deinen Code removed sein sollte.
Gruß, Frank
AW: Verweis setzen in VBA zum x-ten mal
30.09.2020 13:42:21
Nepumuk
Hallo Frank
Die Remove-Methode verlange ein References-Objekt und keine Datei. Also:
Public Sub Test()
    Dim objReference As Object
    For Each objReference In ThisWorkbook.VBProject.References
        If objReference.Name = "Test" Then ' Anpassen !!!
            Call ThisWorkbook.VBProject.References.Remove(objReference)
            Exit For
        End If
    Next
End Sub

Wobei ich in meinem Fall den Namen "VBAProjekt" des Addins in "Test" umbenannt habe. Das musst du anpassen.
Gruß
Nepumuk
Anzeige
AW: Verweis setzen in VBA zum x-ten mal
30.09.2020 13:49:41
Frank
Hallo Nepumuk,
Deinen Code entsprechend angepasst und es läuft wie gewünscht. Auf die Profis hier ist halt Verlass.
Vielen herzlichen Danke an alle.
VG Frank

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige