PDA

Vollständige Version anzeigen : Addins.Add erzeugt Laufzeitfehler 1004


vJogi
15.11.2005, 18:49
Mein Ziel ist, über ein auf jedem Rechner des Netzwerk liegendes Addin automatisch beim Start von Excel weitere Addins aus einem im Netz liegenden Verzeichnis zu laden (=registrieren und aktivieren), in dem die jeweils aktuellsten Versionen liegen und ggfs. auch neue Addins hinzukommen (würde die Administration deutlich erleichtern, da so die Bereitsstellung von Neuerungen durch ein Kopieren in das Netzverzeichnis erledigt ist.

Das ladende Addin liegt im Verzeichnis ...\office11\XLStart und wird so bei jedem Start geladen. Bislang sieht der Code folgendermaßen aus:

Private Sub Workbook_Open()
Dim StartUpFolder As String
Dim AktAddinName As String
Dim AktAddin As AddIn

' Laden der erforderlichen Addins vom Programmserver
StartUpFolder = "w:\winnt\ms_office\excel\startup\"
AktAddinName = Dir(StartUpFolder & "*.xla")

Do While AktAddinName <> ""
Set AktAddin = Application.AddIns.Add(WGZStartUpFolder & AktAddinName, False)
AktAddin.Installed = True
AktAddinName = Dir
Loop

End Sub


Das funktioniert auch soweit wie gewünscht, wenn zuerst Excel gestartet und erst anschließend eine Datei geöffnet wird. Beim Öffnen einer vorhandenen Excel-Datei per Doppelklick im Explorer alledings erscheint die Fehlermeldung "Laufzeitfehler '1004': Die Add-Methode des AddIns-Objektes konnte nicht ausgeführt werden". Öffnet man den Debugger, wird die Zeile "Set AktAddin = Application.AddIns.Add(WGZStartUpFolder & AktAddinName, False)" als die fehlerauslösende ersichtlich.

Hat jemand eine Idee, woran es liegen und wie eine Lösung aussehen könnte?

Das ganze findet übrigens in Excel 2003 unter Windows XP SP2 statt.

Herzlichen Dank im voraus!

Gruß, Jürgen

vJogi
17.11.2005, 19:11
Habe es nun selbst herausgefunden. Den Code zum Laden der Addins in eine eigene Prozedur packen und im Workbook_open-eventhandler nur mit .OnTime einen Timer zum zeitversetzten Aufruf der Prozedur ablegen:

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:01"), "LadeAddins"
End Sub


Gruß, Jürgen