Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1624to1628
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

Bibliothek VBA Extensibility 5.3

Bibliothek VBA Extensibility 5.3
29.05.2018 21:13:33
Dietmar
Hallo,
ich suche eine Erklärung für einen (für mich) unerklärlichen Effekt:
Es geht dabei um folgende Prozedur:
Sub VBEAktivieren()
Dim VBEobj As Object
On Error Resume Next
'Bibliothek Microsoft Visual Basic for Application Extensibility 5.3
VBEobj = Application.VBE.ActiveVBProject.References.AddFromGuid("{0002E157-0000-0000-C000- _
000000000046}", 5, 3)
On Error GoTo 0
End Sub
Starte ich sie ganz "normal" so wird der Verweis aktiviert (Häkchen ist gesetzt).
Rufe ich die identische Prozedur aus einem Ribbon (AddIn) funktioniert es nicht.
Kann mir das vielleicht jemand erklären?
Vielen Dank und einen schöen Abend noch,
Dietmar

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

Betreff
Datum
Anwender
Anzeige
AW: Bibliothek VBA Extensibility 5.3
30.05.2018 06:57:34
Luschi
Hallo Dietmar,
die Vba-Verweise beziehen sich immer auf die jeweilige Arbeitsmappe die gerade aktiv ist.
In Deinem Fall wird ja das Ribbon vom AddIn bereitgestellt und auch der entsprechende Vba-Code der Prozedur 'VBEAktivieren' steht z.Z. im AddIn.
Und das ist der springende Punkt. Du willt den Verweis ja nicht für das AddIn sondern für eine andere geöffnete! Datei mit Vba-Projekt setzen. Hier gibt es aber eine Sperre und Excel-Vba weigert sich - und das ist gut so!
Trotzdem ist es aber möglich:
- das Makro 'VBEAktivieren' muß sich in der entsprechenden Arbeitsmappe und nicht im AddIn befinden
- im AddIn ruft man das Makro so auf:

Sub Start_VBE_Aktivieren()
Application.Run Workbooks("121831.xlsm").Name & "!VBEAktivieren"
End Sub

Das Makro in der Arbeitsmappe sieht dann so aus:

Sub VBEAktivieren_2()
'|  Benötigte Bibliothek für VBE-Programmierung aktivieren  |
Dim VBEobj As Object, sNr As String
sNr = "{0002E157-0000-0000-C000-000000000046}"
'On Error Resume Next
'Bibliothek Microsoft Visual Basic for Application Extensibility 5.3 "VBIDE"
'Debug.Print ThisWorkbook.Name
ThisWorkbook.VBProject.References.AddFromGuid sNr, 5, 3
On Error GoTo 0
End Sub
Erstaunlicherweise funktionioert das auch bei gesetztem Vba-Kennword in der entsprechende Arbeitsmappe.
Das Problem: Auswahl der richtigen geöffneten Arbeitsmappe [Workbooks("121831.xlsm").Name]
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Bibliothek VBA Extensibility 5.3
30.05.2018 09:14:58
Dietmar
Hallo Luschi,
vielen Dank für die sehr ausführliche Antwort. Ich war davon ausgegangen, dass der Verweis für alle Excel-Dateien gilt. Habe jetzt auch einige meiner "alten" Dateien durchforstet und die Bestätigung gefunden: die Eigenschaft "geht" mit der Datei. Aber jetzt habe ich das Prinzip verstanden.
Schönen Gruß nach Klaa-Paris,
Dietmar
not 'Klaa-Paris but 'klein-Paris'
30.05.2018 10:19:30
Luschi
see you Goethe!
Gruß von Luschi
aus klein-Paris
AW: not 'Klaa-Paris but 'klein-Paris'
30.05.2018 10:28:48
Dietmar
:-)
AW: Bibliothek VBA Extensibility 5.3
30.05.2018 16:51:55
Dietmar
Hallo Luschi,
irgendwie hat mir die Idee das Makro in jede Datei einzufügen doch keine Ruhe gelassen.
Aber genau dein Code war letzten Endes auch die Lösung:
Ich habe ThisWorkbook durch ActiveWorkbook ersetzt (im AddIn), dann rufe ich im AddIn die gewünschte Datei auf und mit ActiveWorkbook aus dem AddIn heraus wird der Verweis aktiviert. Problem gelöst.
Nochmals Danke,
Dietmar
Anzeige
AW: Bibliothek VBA Extensibility 5.3
31.05.2018 16:58:32
Luschi
Hallo Dietmar,
danke für die Info; ich selbst arbeite sehr ungern mit 'ActiveWorkbook', da in meinen Projekten neben dem AddIn meist noch 3-4 weitere Arbeitsmappen im Zugriff sind und deshalb Objektvariablen zum Einsatz kommen.
Ich benutze das Neu-Setzen von Verweise immer im Zusammenhang mit 'Reference.IsBroken'.
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige