Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Library zuweisen beim Start von Excel

Library zuweisen beim Start von Excel
05.03.2019 07:23:03
Excel
Hallo zusammen,
ich habe folgendes Schwierigkeit: In der Firma sind unterschiedliche Versionen von MS(2010 + 2013) auf den Rechnern verteilt. Es gibt Dokumente welche von jedem Rechner via VBA bearbeitet werden müssen. Die Dokumente müssen aufgrund von "Layer 8"-Schwierigkeiten mit einem Password abgesichert werden. Die User sind soweit dazu tauglich die jeweiligen Verweise zu den Librarys zu setzten, aber nicht Makro-Buttons zu benutzen. True Story...
Jedenfalls kann durch die Password Absicherung kein Verweis mehr geändert werden und ich suche nun nach einer Lösung um die verweise zu unterschiedlichen Library Versionen zu prüfen, und ggf zu ersetzten.
Bsp: UserA aktualisiert Dokument mit Excel 2013. UserB will das selbe Dokument via VBA aktualisieren und erhält Compilation Fehler. "Library 15" ist nicht vorhanden und muss manuel umgestellt werden.
Mein Gedanke ist nun zu prüfen, welche Library's nicht vorhanden sind und entsprechend entfernt werden, danach welche Library aktiviert werden soll - Ob Library 14 oder 15.
Könnt Ihr mir da helfen welche Kommands ich brauche?
Gruß,
Danny

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

Betreff
Datum
Anwender
Anzeige
AW: Library zuweisen beim Start von Excel
05.03.2019 09:01:03
Excel
Hallo Danny,
hier mal eine Möglichkeit die eingebundenen Verweise auszulesen, damit du die Version checken kannst:
Public Sub ListReferencesInProject()
Dim oRefs As Object
Dim oRef As Object
Dim i As Long
Set oRefs = ActiveWorkbook.VBProject.References
Range("A1") = "Bezeichnung"
Range("B1") = "Name"
Range("C1") = "Pfad"
Range("D1") = "GUID"
Range("E1") = "Major"
Range("F1") = "Minor"
Range("G1") = "Standard-Verweis"
Range("A1:G1").Font.Bold = True
i = 1
For Each oRef In oRefs
i = i + 1
Cells(i, 1) = oRef.Description
Cells(i, 2) = oRef.Name
Cells(i, 3) = oRef.FullPath
Cells(i, 4) = oRef.GUID
Cells(i, 5) = oRef.Major
Cells(i, 6) = oRef.minor
Cells(i, 7) = oRef.BuiltIn
Next
Range("A1:G1").EntireColumn.AutoFit
Set oRefs = Nothing
End Sub
Ich würde dann an deiner Stelle per LateBinding auf die erforderlichen Bibliotheken zugreifen. Dazu findest du genug Material hier im Archiv.
Viele Grüße
Martin
Anzeige
AW: Library zuweisen beim Start von Excel
05.03.2019 10:36:52
Excel
Hallo Martin,
danke schon mal für die Hilfe. Ich bekomme jedoch die Fehlermeldung ...
Die Methode 'VBProject' für das Objekt '_Workbook' ist fehlgeschlagen
Habe ich vergessen eine Bibliothek zu aktivieren?
Userbild
Die F-Meldung deutet darauf hin, ...
05.03.2019 19:44:46
Luc:-?
…Danny,
dass du deinem VBAProject keinen eigenen Namen gegeben hast. VBAProject ist nämlich ein Default-Name, der stets automatisch vergeben wird. So benannte Projekte können grundsätzlich nicht in andere Anwendungen eingebunden wdn, da ihr Name nicht eindeutig ist (weil alle ursprüngl so heißen!).
Gruß, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
AW: Die F-Meldung deutet darauf hin, ...
06.03.2019 07:12:18
Danny
Hallo Luc,
ok von alleine wäre ich da nicht drauf gekommen :-)
Dachte immer das Programm würde den Dateinamen als Projekt ansehen und von alleine erkennen.
Hab jetzt VBProjet mit "Mytestcase" geswitcht und das Projekt auch so betitelt. Ich muss wohl noch etwas anpassen?!
Sonst käme diese Meldung ja nicht:
Userbild
Sorry, nur ich wurde in diese VBA Geschichte "reingeworfen" und krieg Arbeitstechnisch nicht die Zeit mich da irgendwie rein zu lesen. Daher auch solche Anfänger Fehler und simple fragen...
Gruß,
Danny
Anzeige
AW: Die F-Meldung deutet darauf hin, ...
06.03.2019 09:11:28
Martin
Hallo Danny,
ich ordne dein Thema schon dem "fortgeschrittenen Anspruch" zu, da musst du dich echt nicht entschuldigen.
Zu dem was Luc schreibt findest du hier Infos bezüglich der Namensvergabe des VBA-Projektes:
https://docs.microsoft.com/de-de/office/vba/api/excel.workbook.vbproject
Jedoch vermute ich fast, dass das Problem woanders liegt. Es könnte sein, dass du eine Berechtigung für den Zugriff auf das VBA-Projekt benötigst und eine Sicherheitseinstellung ändern musst:
DATEI Optionen /Sicherheitscenter/Einstellungen für Sicherheitscenter...
Einstellungen für Makro: Zugriff auf das VBA-Projektmodell vertrauen
Wenn dem so ist, dann kannst du die Verweise nicht auf jedem x-beliebigen Rechner abfragen ohne zuvor diese standardmäßig gesperrte Sicherheitseinstellung geändert zu haben.
Ich würde an deiner Stelle versuchen auf alle benötigten Bibliotheken per LateBinding über die eindeutige GUID zuzugreifen. Diese wiederum kannst du mit dem von mir geposteten Code auf deinem eigenen Rechner ermitteln.
Hier mal ein Beispiel zum Einbinden der Zwischenablage per GUID:
    Dim objClipboard As Object
Set objClipboard = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
Viele Grüße
Martin
Anzeige

228 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige