Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
376to380
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
376to380
376to380
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Installiertes AddIn per VBA löschen

Installiertes AddIn per VBA löschen
06.02.2004 21:30:29
Russi
Hallo Profis!
Ich habe mir ein AddIn gebastelt, welches ich mit einem "Verfallsdatum" ausstatten möchte, da die enthaltenen Funktionen relativ schnell veralten. Leider komme ich mit dem Code nicht weiter und auch im Netz habe ich nichts darüber gefunden.
Ist es überhaupt möglich, ein Addin im "laufenden Betrieb" zu löschen?
So sieht mein Code (oder besser gesagt: meine Vorstellung davon) bisher aus:

Private Sub Workbook_Open()
If Date > "31.12.2004" And AddIns("mappe1.xla").Installed = True Then
AddIns("mappe1.xla").Installed = False
AddIns("mappe1.xla").FullName.Kill
End Sub

Leider schluckt er den Kill-Befehl nicht. Hat vielleicht jemand von Euch einen Tip für mich?!?
Viele Grüße
Russi

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: teillösung
06.02.2004 21:57:28
andre
hallo russi,
erst mal eine teillösung:
Kill AddIns(i).FullName
beim nächsten aktivierungsversuch steht das ding zwar noch in der liste, es gibt aber die fehlermeldung, dass es nicht mehr da ist.
gruss andre
AW: teillösung
06.02.2004 22:24:29
andre
hallo russi,
und nocheinzusatz. die addin-liste steht in der registry unter
HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Excel\Add-in Manager
x.0 = Versionsnummer
und wird beim neustart von excel neu eingelesen.
in der registry hilft vielleicht das: http://xlfaq.herber.de/texte/volumina/127600x.htm
oder wenn die *settings nicht reichen googeln nach registry und api
gruss andre
Anzeige
AW: teillösung
07.02.2004 14:34:15
Russi
Hi Andre!
Coole Lösung, herzlichen Dank!
Durch diese Registry-Geschichten muss ich mich erstmal durchwursteln, aber es sieht aus, als könnte man es verstehen.
Danke nochmal!!!
Russi
Danke für die Rückmeldung
07.02.2004 18:12:40
andre
hallo russi,
wenn du die lösung komplett hast, kannst du es ja noch auf diesen thread als antwort mitteilen. das geht so etwa 4-5 tage ab dem einstelldatum der frage.
gruss andre
bin schon am tüfteln...
08.02.2004 11:44:09
Russi
Ich melde mich, sobald es geht!
Leider noch ungelöst...
08.02.2004 12:51:50
Russi
Hi Andre!
Habe jetzt mal versucht, Deine Tipps nachzuvollziehen. Leider erfolglos :-(
Kill Addins(12).FullName würde mein Addin theoretisch löschen. Die Index-Nr. auf jedem PC individuell neu zu ermitteln stellt ja kein Problem dar. Problem ist jedoch: "Laufzeitfehler 75: Probleme bei Zugrif auf Pfad/Datei". Ich vermute, weil das AddIn geöffnet ist?
Ein einfaches Schließen des AddIns per "AddIns(12).Installed = False" bringt mich auch nicht weiter, weil ein nachfolgender Kill-Befehl nach dem Schließen der Datei naturgemäß nicht mehr ausgeführt wird.
Hast Du vielleicht noch eine Idee dazu?!?
Viele Grüße
Russi
Anzeige
AW: kompletter ansatz
08.02.2004 20:04:25
andre
hallo russi,
hier mein code. gelöscht habe ich damit bei mir das addin Stichprobe001.

Sub KillAddIn()
With Worksheets("Tabelle1")
.Rows(1).Font.Bold = True
.Range("a1:d1").Value = _
Array("Name", "Full Name", "Title", "Installed")
For i = 1 To AddIns.Count
.Cells(i + 1, 1) = AddIns(i).Name
.Cells(i + 1, 2) = AddIns(i).FullName
.Cells(i + 1, 3) = AddIns(i).Title
.Cells(i + 1, 4) = AddIns(i).Installed
If AddIns(i).Name = "Stichprobe001.xla" Then
Application.AddIns(i).Installed = False
Kill AddIns(i).FullName
End If
Next
.Range("a1").CurrentRegion.Columns.AutoFit
End With
End Sub

gruss andre
Anzeige
AW: kompletter ansatz - YEAAHHH!!!!
09.02.2004 07:55:36
Russi
Guten Mor-gäääähn Andre!
Ich benutze jetzt von allen Tipps einen Teil. Das Problem ist ja, dass der Code bzw. das AddIn sich praktisch selbst löschen muss und kein Zugriff auf das AddIn von "extern" erfolgt.
Sprich: Führe ich innerhalb des AddIns den Befehl "Addin(i).installed = false" aus, werden nachfolgende Befehle wie "Kill" nicht mehr ausgeführt. Und ein Kill-Befehl VOR Addin(i).installed=false führt zu einem Zugriffsfehler.
Dies umgehe ich durch Generierung einer neuen Arbeitsmappe und Auführung des Codes von dort aus.
Ich danke Dir auf jeden Fall herzlich für Deine tolle Hilfe!!!
Viele Grüße
Russi
Anzeige
AW: Lösung?
08.02.2004 20:00:39
andre
hallo rossi,
ist im prinzip nichts anderes nur viel umfangreicher und mit code hin und her schieben ... der kurze code wie gesagt tuts auch. und bei dieser langen variante hast du das addin auch noch in der liste oder?
gruss andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige