Auto-Update für COM-Addin

Bild

Betrifft: Auto-Update für COM-Addin
von: Born
Geschrieben am: 16.11.2015 14:21:16

Hallo Forum,
Ich habe ein COMM-Addin geschrieben. Nun möchte ich einen Auto-Update-Mechanismus implementieren, der immer beim Aufruf eine neue Version von Laufwerk H nach Laufwerk C des Nutzers kopiert. Folgenden 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

Bild

Betrifft: AW: Auto-Update für COM-Addin
von: Herbert Grom
Geschrieben am: 17.11.2015 13:09:46
Probiers mal mit "On Error Resume next".
Servus

Bild

Betrifft: AW: Auto-Update für COM-Addin
von: Born
Geschrieben am: 17.11.2015 13:13:38
Hallo Herbert,
dann kommt zwar keine Fehlermeldung mehr und das Makro läuft durch, allerdings wird dann auch die Kill-Anweisung nicht ausgeführt. Spätestens beim CopyFile habe ich dann dasselbe Problem. Obwohl das Addin geschlossen ist, wird es von Excel nicht sauber freigegeben und ich kann die Datei nicht überschreiben.
Hat noch jemand anderes eine Idee?
Vielen Dank,
M. Born

Bild

Betrifft: AW: Auto-Update für COM-Addin
von: Herbert Grom
Geschrieben am: 17.11.2015 13:37:17
Hallo,
aber es ist doch logisch, dass Excel die Datei nicht killen kann, so lange sie geladen ist. Also erst entladen, dann killen. Entladen geht, "nach meinem Kenntnisstand", nur mit Excel schließen und wieder öffnen.
Servus

Bild

Betrifft: AW: Auto-Update für COM-Addin
von: Born
Geschrieben am: 17.11.2015 14:21:19
D.h., wenn das COM-Addin geladen ist, gibt es keine Möglichkeit, per Makro die Datei zu aktualisieren, außer einen Excel-Neustart?

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellenbezug Verschieben"