Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
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

VBA Compilerfehler?!

VBA Compilerfehler?!
21.08.2019 13:37:15
Bernd
Servus Forumsmitglieder,
ich habe ein Problem und weiß nicht wie ich es lösen kann.
Dazu muss ich etwas "ausholen". Ich soll für meine Firma eine Liste entwerfen, die an allen unseren (internationalen) Standorten funktioniert.
Um das dennoch zu erreichen muss ich ggf. auch zusätzliche Add-Ins, Bibliotheken,... usw. über den Makrocode einbinden.
Leider bekomme ich von unserer lokalen IT praktisch keine Hilfe.
In unserem Unternehmen kommen zwischen Excel 2010 - 2016 alle Versionen zum Einsatz.
Dazu habe ich folgendes Makro im Internet gefunden, welches ich bei Workbook_Open direkt aufrufe. Da das Makro aus 2004 stammt und auf meinem 2016er Excel läuft sehe ich erstmal keine Kompatibilitätsprobleme.
1. VB Referenzen auslesen

Sub Grab_References()
' Ritchie (UK), Ozgrid, 05.09.2004
' http://ozgrid.com/forum/showthread.  _
_
php?t=22504
Dim n As Integer, l As Long, c As Integer, lastR As Long
Dim VBPRef As Object
On Error GoTo errhandler
With ThisWorkbook
Set VBPRef = .VBProject.References
With Sheets("Debug")
l = 1
.Cells(l, 1).Value = "Count"
.Cells(l, 2).Value = "Name"
.Cells(l, 3).Value = "Description"
.Cells(l, 4).Value = "GUID"
.Cells(l, 5).Value = "Major"
.Cells(l, 6).Value = "Minor"
.Cells(l, 7).Value = "Full path"
.Cells(l, 8).Value = "Standard value"
.Cells(l, 11).Value = "Count"
.Cells(l, 12).Value = "Name"
.Cells(l, 13).Value = "Description"
.Cells(l, 14).Value = "GUID"
.Cells(l, 15).Value = "Major"
.Cells(l, 16).Value = "Minor"
.Cells(l, 17).Value = "Full path"
.Cells(l, 18).Value = "Standard value"
.Range("A" & l, "R" & l).Font.Bold = True
lastR = .Cells(Rows.Count, 1).End(xlUp).Row  'mod.
.Range(.Cells(l + 1, 1), .Cells(lastR + 1, 18)).Clear
On Error Resume Next
For n = 1 To VBPRef.Count
l = l + 1
.Cells(l, 1).Value = n
.Cells(l, 2).Value = VBPRef.Item(n).Name
.Cells(l, 3).Value = VBPRef.Item(n).Description
.Cells(l, 4).Value = VBPRef.Item(n).GUID
.Cells(l, 5).Value = VBPRef.Item(n).Major
.Cells(l, 6).Value = VBPRef.Item(n).Minor
.Cells(l, 7).Value = VBPRef.Item(n).FullPath
.Cells(l, 8).Value = VBPRef.Item(n).BuiltIn
Next n
.Columns("A:R").EntireColumn.AutoFit
End With
Set VBPRef = Nothing
End With
Call CheckReferences
errhandler:
End Sub

2. VB Referenzen auf aktuellem Rechner prüfen ob vorhanden

Public Sub CheckReferences()
Dim i As Integer, l As Integer
On Error GoTo errhandler
l = 1
For i = 1 To ThisWorkbook.VBProject.References.Count
l = l + 1
If ThisWorkbook.VBProject.References(i).IsBroken Then
With Sheets("Debug")
.Cells(l, 11).Value = i
.Cells(l, 12).Value = ThisWorkbook.VBProject.References.Item(i).Name
.Cells(l, 13).Value = ThisWorkbook.VBProject.References.Item(i).Description
.Cells(l, 14).Value = ThisWorkbook.VBProject.References.Item(i).GUID
.Cells(l, 15).Value = ThisWorkbook.VBProject.References.Item(i).Major
.Cells(l, 16).Value = ThisWorkbook.VBProject.References.Item(i).Minor
.Cells(l, 17).Value = ThisWorkbook.VBProject.References.Item(i).FullPath
.Cells(l, 18).Value = ThisWorkbook.VBProject.References.Item(i).BuiltIn
End With
'      ThisWorkbook.VBProject.References.Remove _
'      ThisWorkbook.VBProject.References(i)
'      Exit For
End If
Next i
Call GUID_einbinden
errhandler:
End Sub

3. Falls nicht vorhanden die entsprechenden Daten laden

Public Sub GUID_einbinden()
Dim ref
Dim objReferences As Object
Dim i As Integer, l As Integer
On Error GoTo errhandler
With Sheets("Debug")
l = .Cells(Rows.Count, 11).End(xlUp).Row
For i = 2 To l
If .Cells(i, 11).Value  "" Then
On Error Resume Next
Set ref = Application.VBE.ActiveVBProject.References.AddFromGuid(.Cells(i, 14).Text, .  _
_
Cells(i, 15).Value, .Cells(i, 16).Value)
End If
Next i
End With
errhandler:
End Sub

Damit hoffte ich alle Probleme lösen zu können, allerdings wirft dieser Ablauf auf fremden Rechnern (ebenfalls Excel 2016) ein für mich unbekannten Fehler.
Userbild
Das ausgeblendete Modul "Choose" ist eine Userform, mit der Mitarbeiter die Bearbeitung der Liste durchführen sollen und besteht nur aus Optionbuttons.
Userbild
Ich hoffe jemand kann mir sagen, was das für ein Fehler ist und wie ich ihn ggf. beheben kann.
Vielen Dank!
Grüße, Bernd

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Compilerfehler?!
21.08.2019 13:48:30
mumpel
Hallo!
Dieses Problem tritt normalerweise unter der 64-bit-Version von Office auf.
Gruß, René
AW: VBA Compilerfehler?!
22.08.2019 08:48:49
Bernd
Servus Mumpel,
danke für den Hinweis, allerdings ist auch mein Excel 2016 "nur" 32-Bit und die Rechner meiner (internationalen) Kollegen auch nur mit 32-Bit Versionen bestückt.
Heute hab ich einen Termin mit der Konzern IT. Mal sehen, was die mir sagen...
Trotzdem vielen Dank für die Hilfestellung.
Grüße, Bernd
AW: VBA Compilerfehler?!
21.08.2019 18:05:22
Nepumuk
Hallo Bernd,
um auf das VBProject zugreifen zu können musst du im Trust-Center den Zugriff auf das VBA-Project zulassen.
Userbild
Gruß
Nepumuk
Anzeige
AW: VBA Compilerfehler?!
22.08.2019 08:45:30
Bernd
Servus Nepumuk,
vielen Dank für den nützlichen Hinweis.
Diese Einstellung wird sehr wahrscheinlich von unserer zentralen IT verwaltet.
Gibt es eine Möglichkeit für selbst erstellte Makros eine Art "internes Sicherheitszertifikat" zu erstellen und zu installieren, damit die Liste bei jedem Firmenrechner läuft?!
Danke und Grüße, Bernd
AW: VBA Compilerfehler?!
22.08.2019 09:38:41
Nepumuk
Hallo Bernd,
du kannst zwar Makros signieren (bei mir laufen nur signierte Makros), aber so lange das Häkchen nicht gesetzt ist hilft dir auch die Signatur nichts. Zudem muss auf jedem Rechner auf denen das signierte Makro laufen soll das Zertifikat installiert sein.
Gruß
Nepumuk
Anzeige
AW: VBA Compilerfehler?!
22.08.2019 11:25:48
Bernd
Hallo Nepumuk,
nochmal vielen vielen Dank für deine Hilfe.
Ich werde mal mit unserer IT sprechen, ob da was zentral gemacht werden kann.
Grüße, Bernd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige