Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen, ob Add-in schon gestartet

Forumthread: Prüfen, ob Add-in schon gestartet

Prüfen, ob Add-in schon gestartet
29.12.2016 12:36:40
Lu
Liebe VBAler,
da mein Add-in nur in bestimmtem Exceldateien geladen werden soll, mach ich das mit einem Makro und nicht mit der pauschalen Add-in Verknüpfung.
Private Sub Workbook_Open()
Dim Pfad As String
Pfad = Sheets("Blattxy").Range("A1").Value
Workbooks.Open Pfad
End Sub
Öffne ich aber eine zweite Datei, die das Add-in laden möchte, gibt es eine Abfrage: "Add-in xy.xlam ist bereits geöffnet. Wenn sie es erneut öffnen, verlieren Sie damit alle Änderungen, die Sie eingegeben haben. Soll xy.xlm erneut geöffnet werden?"
Die Radikalmethode mit Application.DisplayAlerts = False und On Error Resume Next möchte ich vermeiden um andere Fehler anzeigen zu lassen. Außerdem lädt er so das Add-in neu, was auch nicht so schön ist.
Wie könnte ich vorher prüfen, ob das Add-in schon geladen ist?
Danke und viele Grüße
Lu
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen, ob Add-in schon gestartet
29.12.2016 12:40:57
Nepumuk
Hallo,
binde das Addin per Verweis an die Mappen dann wird es automatisch mit der Mappe geöffnet und wenn es schon offen ist passiert nichts.
Gruß
Nepumuk
AW: Prüfen, ob Add-in schon gestartet
29.12.2016 12:53:09
Lu
Hallo Nepomuk,
jetzt weiß ich nicht ganz, wie Du das meinst.
Also, ich möchte ja nicht generell das Add-in öffnen, wenn ich Excel öffne, sondern nur bei Bestimmten Dateien.
Kann ich denn so einen Verweis auch mappenspezifisch machen und wenn ja, wie?
Anzeige
AW: Prüfen, ob Add-in schon gestartet
29.12.2016 13:07:24
Lu
Hinzu kommt noch das sich der Speicherort des Add-ins ändern kann.
Generell liegt es auf dem Netzwerkserver für alle Mitarbeiter. Da manche es aber auch unterwegs offline verwenden möchten, müssten sie es sich auf dem Rechner speichern.
Der zu verwendende Pfad des Add-ins wird auf Blattxy in der Mappe gespeichert.
Anzeige
AW: Prüfen, ob Add-in schon gestartet
29.12.2016 13:20:57
Nepumuk
Hallo,
in dem Fall habe ich keine Lösung für dich.
Gruß
Nepumuk
AW: Prüfen, ob Add-in schon gestartet
29.12.2016 13:47:26
Lu
Kein Problem, Danke, vielleicht weiß jemand anderes was.
AW: Prüfen, ob Add-in schon gestartet
29.12.2016 14:32:56
Nepumuk
Hallo,
teste mal:
Public Sub Test()
    Dim objAddin As AddIn
    Dim blnFound As Boolean
    For Each objAddin In Application.AddIns2
        If objAddin.Name = "MeinAddin.xlam" Then
            blnFound = True
            Exit For
        End If
    Next
    Set objAddin = Nothing
    If Not blnFound Then Call Workbooks.Open(Filename:="MeinPfad.xlam")
End Sub

Gruß
Nepumuk
Anzeige
AW: Prüfen, ob Add-in schon gestartet
02.01.2017 20:05:40
Lu
Hallo Nepomuk,
Ein frohes neues Jahr erst Mal.
Vielen lieben Dank für die Mühe, bin erst jetzt wieder dazu gekommen:
Leider funktioniert es so nicht, da Applikation.Addin2 wohl alle Add_ins erkennt, egal, ob sie geladen wurden oder nicht. Zumindest hat es mir immer ein TRUE ausgespuckt, auch wenn das Add-in gar nicht zur Verfügung stand.
Hab jetzt noch was anderes gefunden, was wohl funktioniert:
Public Sub AddIn_Test()
Dim Pfad As String
Pfad = Sheets("Blattxy").Range("A1").Value
If Not Application.AddIns2("Add-in Bericht").IsOpen Then
Call Workbooks.Open(Filename:=Pfad)
End If
End Sub
Viele Grüße
Lu
Anzeige
AW: Prüfen, ob Add-in schon gestartet
29.12.2016 13:19:05
Nepumuk
Hallo,
1. Öffne das Addin, geh in den VBA-Editor und klick im Projektexplorer auf die oberste Zeile des Addins - VBAProjekt(Name_des_Addins.xlam)
2. Ändere im Eigenschaftsfenster bei (Name) den Namen des Projektes auf z.B. den Namen des Addins.
3. Speichere Das Addin und schließe Excel.
4. Öffne eine der Mappen in denen das Addin geladen werden soll.
5. Im VBA-Editor öffnest du unter Extras den Verweis-Dialog.
6. Klicke im Dialog auf Durchsuchen und ändere im sich öffnenden Dateidialog unten den Dateityp von Klassenbibliotheken auf Microsoft Excel Files.
7. Wähle nun im Explorerfenster das Addin und erstelle mit einem Doppelklick darauf den Verweis.
Das Addin wird nun immer wenn du diese Mappe öffnest automatisch mit geöffnet. Wenn du eine zweite Mappe mit dem Verweis öffnest passiert nichts da das Addin schon offen ist.
Gruß
Nepumuk
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Prüfen, ob ein Excel Add-in bereits gestartet ist


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein Excel Add-in bereits gestartet ist, kannst du die folgende VBA-Prozedur verwenden:

Public Sub AddIn_Test()
    Dim Pfad As String
    Pfad = Sheets("Blattxy").Range("A1").Value
    If Not Application.AddIns2("Add-in Bericht").IsOpen Then
        Call Workbooks.Open(Filename:=Pfad)
    End If
End Sub
  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Erstelle ein neues Modul oder öffne ein bestehendes.
  3. Füge den obigen Code ein.
  4. Achte darauf, den Namen deines Excel xlam Add-ins anzupassen, falls nötig.
  5. Schließe den VBA-Editor und teste das Makro.

Diese Prozedur überprüft, ob das Add-in schon geöffnet ist, und öffnet es nur, wenn es nicht geladen ist.


Häufige Fehler und Lösungen

  • Fehler: Anwendung.AddIns2 gibt TRUE zurück, obwohl das Add-in nicht geöffnet ist.

    • Lösung: Stelle sicher, dass du den richtigen Namen des Add-ins in der Abfrage verwendest. Prüfe, ob der Name exakt mit dem Namen im Add-in übereinstimmt.
  • Fehler: Das Add-in wird trotzdem geöffnet.

    • Lösung: Nutze den IsOpen-Befehl, um sicherzustellen, dass das Add-in nicht schon geöffnet ist.

Alternative Methoden

Eine alternative Methode besteht darin, das Excel VBA Add-in beim Öffnen einer spezifischen Excel-Datei automatisch zu laden. Hierzu kannst du einen Verweis auf das Add-in setzen:

  1. Öffne das Add-in im VBA-Editor.
  2. Ändere im Eigenschaftenfenster den Namen des Projekts auf den Namen des Add-ins.
  3. Speichere das Add-in und schließe Excel.
  4. In der Datei, die das Add-in verwenden soll, gehe zu Extras > Verweise.
  5. Wähle das Add-in aus und setze den Verweis.

Mit dieser Methode wird das Excel Add-on immer geladen, wenn die Datei geöffnet wird, ohne dass eine doppelte Instanz entsteht.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du das Add-in für bestimmte Dateien laden kannst:

Private Sub Workbook_Open()
    Dim Pfad As String
    Pfad = Sheets("Blattxy").Range("A1").Value
    If Not Application.AddIns2("MeinAddin.xlam").IsOpen Then
        Call Workbooks.Open(Filename:=Pfad)
    End If
End Sub

Dieses Makro kannst du in die Workbook_Open()-Prozedur deiner Excel-Datei einfügen. Es wird beim Öffnen der Datei ausgeführt und prüft, ob das Add-in bereits geladen ist.


Tipps für Profis

  • Verwende Application.DisplayAlerts = False, um lästige Bestätigungsdialoge zu unterdrücken, wenn das Add-in bereits geöffnet ist. Achte jedoch darauf, dies mit Bedacht zu tun, da auch andere wichtige Fehlermeldungen unterdrückt werden könnten.
  • Nutze die Möglichkeit, den Pfad des Excel xlam Add-ins dynamisch zu speichern, indem du ihn in einer Zelle deiner Arbeitsmappe ablegst.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Excel Add-in nur für bestimmte Dateien geladen wird? Du kannst das Add-in nur in der Workbook_Open()-Prozedur der spezifischen Arbeitsmappe laden, indem du vorher prüfst, ob es bereits geöffnet ist.

2. Was mache ich, wenn der Name des Add-ins sich ändert? In diesem Fall solltest du den Code so anpassen, dass er den aktuellen Namen des Add-ins abfragt oder dynamisch aus einer Zelle ausliest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige