marcoborn
Goto Top

Auto-Update für COM-Addin

Hallo Forum,
Ich habe ein COM-Addin geschrieben. Nun möchte ich einen Auto-Update-Mechanismus implementieren, der immer beim Aufruf eine neue Version des Addins von Laufwerk H nach Laufwerk C des Nutzers kopiert. Folgenden VBA-Code habe ich getestet:

Sub test()
  For i = 2 To Application.COMAddIns.Count
    If Application.COMAddIns(i).Description = "MyMakros" Then Application.COMAddIns(i).Connect = _  
 False
  Next

  Kill "C:\MyMakros.xll"  
  Application.ExecuteExcel4Macro "UNREGISTER(""C:\MyMakros.xll"")"  
  Kill ("C:\MyMakros.xll")  

  Dim myFso As Object
  Set myFso = CreateObject("Scripting.FileSystemObject")  
  myFso.copyfile "H:\MyMakros.xll", "C:\MyMakros.xll"  
  Application.RegisterXLL Filename:="C:\MyMakros.xll"  
End Sub

Wenn die XLL beim Start des VBA-Makros nicht geladen ist, funktioniert das Makro, aber wenn sie gerade geöffnet ist, erhalte ich eine Fehlermeldung beim Aufruff von Kill. Das verstehe ich nicht, da die XLL in der COM-Addin-Auflistung von Excel als "nicht geladen" markiert ist. Gibt es noch einen anderen Weg?

Vielen Dank im voraus,
M. Born

Content-Key: 288567

Url: https://administrator.de/contentid/288567

Printed on: April 20, 2024 at 01:04 o'clock

Mitglied: 122990
Solution 122990 Nov 17, 2015 updated at 14:15:19 (UTC)
Goto Top
Moin,
das haben schon viele versucht, geht aber so nicht. Dazu brauchst du ein externes Tool was das File updatet, denn trotz dem das Addin nicht geladen ist, hat Excel einen Finger auf dem File wenn es geöffnet ist.
Du musst es also austauschen wenn Excel geschlossen ist.

Gruß grexit

p.s. Sehe gerade das wurde dir hier schon verklickert
COM-Addin aktivieren
Da haben die Kollegen ebenfalls absolut recht.
Member: MarcoBorn
MarcoBorn Nov 17, 2015 at 14:15:14 (UTC)
Goto Top
Ich hatte zwichenzeitlich noch den Weg mit den Excel4Macros gefunden, der wohl funktionieren sollte. Das hat mir etwas Hoffnung gegeben, es doch noch zum Laufen zu kriegen. Aber scheinbar funktioniert es doch nicht so, wie es soll. Warum muss MS immer so unsauber programmieren und Dateien offenlassen, die geschlossen werden... face-sad