Portal | Forenübersicht | Neues Thema | Suchen | FAQ | Registrieren | Login
Forum > Excel & VBA > Add-Ins > Prüfen off AddIn bereits läuft
Fragen zu den AddIn´s aus dem Downloadbereich
In diesem Board befinden sich 22 Themen.
Die Beiträge bleiben immer erhalten.
Es wird moderiert von P@ulchen, RO_SCH.
Seite 1 Neues Thema letztes Thema nächstes Thema Dieses Board durchsuchen Diesen Thread zu meinen persönlichen Favoriten hinzufügen Abonnieren Ohne Zitat Antworten Druckt alle Antworten dieses Themas


Urkle ist offline Urkle  Prüfen off AddIn bereits läuft Antworten Zitatantwort Einzelbeitrag drucken Dieses Thema weiterempfehlen
Profil private Nachricht senden Email
8.8.2008 - 10:49 Uhr
46 Posts
Kenner


Hallo,
wenn ich mehrere Excel Dateien parallel offne, startet mein Addin eben so oft.
Bei einem erweiterten Kontextmenue sieht das unschön aus...
Wie kann ich prüfen, ob ein Addin bereits gestartet ist?

Bisher habe ich nur "Workbook_BeforeClose(Cancel As Boolean)" und "Workbook_Open" mit der entspr. Call Funktion verwendet.

Danke im voraus.

Urkle

marose67 ist offline marose67  Re: Prüfen off AddIn bereits läuft Antworten Zitatantwort Einzelbeitrag drucken Dieses Thema weiterempfehlen
Profil private Nachricht senden Homepage
10.8.2008 - 10:49 Uhr
21 Posts
Excel-Meister


Hallo,

wenn man ein AddIn vernünftig einbinden möchte, so verwendet man einen Code, der diesem ähnlich ist:

Option Explicit
Dim cControl As CommandBarButton

Private Sub Workbook_AddinInstall()
On Error Resume Next 'Just in case
'Delete any existing menu item that may have been left.
Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete
'Add the new menu item and Set a CommandBarButton Variable to it
Set cControl = Application.CommandBars("Worksheet Menu Bar").Controls.Add
'Work with the Variable
With cControl
.Caption = "Super Code"
.Style = msoButtonCaption
.OnAction = "MyGreatMacro"
'Macro stored in a Standard Module
End With
On Error GoTo 0
End Sub

Private Sub Workbook_AddinUninstall()
On Error Resume Next 'In case it has already gone.
Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete
On Error GoTo 0
End Sub

Quelle: http://www.ozgrid.com/VBA/excel-add-in-create.htm

Ich habe diese Vorgehensweise selber nicht getestet, denn für mich wäre dein Problem interessanter gewesen, wenn Du mir deinen Code aufgezeigt hättest.

Gruß
Marcus

Urkle ist offline Urkle  Re: Prüfen off AddIn bereits läuft Antworten Zitatantwort Einzelbeitrag drucken Dieses Thema weiterempfehlen
Profil private Nachricht senden Email
20.1.2009 - 10:53 Uhr
46 Posts
Kenner


Hallo Marcus,
danke für den Tipp. Ich hänge mal zwei Addins an, die sich gegeneinander beharken. Schalt ich einen aus, gehen beide aus. Hast Du ne Idee?
Die einzige Übereinstimmung der beiden Addins ist der name "Cells". Aber daran liegt es auch nicht.
Ich denke, beim Reset des Kontextmenues löscht er alles, was er findet....

Urkle hat folgende Datei angehängt:

6_from_Urkle_addins.zip | Dateigrösse: 54 KB


P@ulchen ist offline P@ulchen  Re: Prüfen off AddIn bereits läuft Antworten Zitatantwort Einzelbeitrag drucken Dieses Thema weiterempfehlen
Profil private Nachricht senden
20.1.2009 - 17:42 Uhr
717 Posts
Administrator


Hallu Urkle,

logisch, dass ein Reset des Kontextmenüs alles zurücksetzt.
Wenn Du 2 Addins hast, die dem Kontextmenü jeweils eigene Einträge hinzufügen, dann mußt Du diese auch einzeln wieder löschen.
Dies kannst Du über eine Rückwärts-Schleife lösen, in der Du die zu löschenden Menüeinträge auf Vorhandensein abfragst.
Um doppelte Menüeinträge zu verhindern (1. Posting), würde ich dies auch ins Workbook_Open-Ereignis einbauen.

Gruß
P@ulchen
Kaum macht man es richtig - schon funktionierts...

Urkle ist offline Urkle  Re: Prüfen off AddIn bereits läuft Antworten Zitatantwort Einzelbeitrag drucken Dieses Thema weiterempfehlen
Profil private Nachricht senden Email
21.1.2009 - 12:48 Uhr
46 Posts
Kenner


Hallo P@ulchen,
klingt erstmal logisch. Danke, ich probiers mal aus.
Gruß Urkle

Urkle ist offline Urkle  Re: Prüfen off AddIn bereits läuft Antworten Zitatantwort Einzelbeitrag drucken Dieses Thema weiterempfehlen
Profil private Nachricht senden Email
21.1.2009 - 15:44 Uhr
46 Posts
Kenner


Hallo P@ulchen,
hab nochmal nachgesehen. Hier noch ne Zwischenfrage:

For Each ComBar In Application.CommandBars
If ComBar.Name = EN433kt Then
Application.CommandBars(EN433kt).Delete
Exit Sub
End If
Next

In der Private Sub Workbook_BeforeClose steht doch, dass er explizit nur die Combar mit dem Namen EN433kt löschen soll, oder? Wieso löscht er dann alle anderen geladenen Addins auch?

Application.CommandBars("Cell").Reset

Ist der Reset Befehl für alle geladenen Addins?

Und zum Schluss:

Hast Du ein Beispiel für die Rückwärts Schleife? Hier stehe ich gerade auf dem Schlauch, wie diese dann den o.g. Reset Befehl umgehen soll ....

Gruß Urkle

Seite 1 nach oben

Forenauswahl:





Numaek's Forum V4.1.0 © 2005 by numaek
Originaltemplate by numaek