ich komme bei einer Updateroutine nicht weiter, die ich geschrieben habe. Folgende Situation:
Die Programmlogik des Tools ist in der Datei makros.xlam als Addin abgelegt. Dieses Addin ist auch "installiert." und liegt als Datei in einem Ordner auf Laufwerk C:\ (also lokal). Das Addin hat auch eine eigene Ribbon-Bar. Ein Menüpunkt darin ist "Makros aktualisieren".
Bei Aufruf dieses Menüpunkts wird folgende Sub aufgerufen:
Sub MakroUpdate(control As IRibbonControl)
Application.Run ("'T:\ExcelTool\Makros_update.xls'!Makro_update.Makro_update")
End Sub
Das aufgerufene Makro in der Makro_update.xls deinstalliert das Addin, allerdings dazu führt, dass das Makro an genau der Stelle beendet wird und die weitere Verarbeitung somit abgebrochen wird.
Hier der Codeausschnitt dazu:
For i = 1 To AddIns.Count
if AddIns(i).name = "makros.xlam" Then
AddIns("makros").Installed = False ' _
Makros.xlam Addin deinstallieren
End If
Next i
Ich hatte auch schon versucht, im Addin (makros.xlam) über die Auto_Remove Methode das ganze zu steuern:
Sub MakroUpdate(control As IRibbonControl)
AddIns("makros").Installed = False
End Sub
Sub Auto_Remove()
Application.Run ("'T:\ExcelTool\Makros_update.xls'!Makro_update.Makro_update")
End Sub
Allerdings läuft dieser Versuch auf einen Laufzeitfehler 91 (Objektvariable oder With-Blockvariable nicht festgelegt). Klingt für mich (leider!) auch plausibel, da das Addin zu dem Zeitpunkt vermutlich schon weg ist.
Weiss jemand Rat? Ohne eine Updateroutine gehts bei uns nicht, da es zu viele Rechner sind als sie jedesmal abzulaufen.
Vielen Dank schonmal.
Grüße
Adleano