möchte die AddIn-Analysefunktion in ein Makro einbauen, so dass sie aktiviert wird, wenn dies nicht der Fall sein sollte.
Geht das per VBA?
Besten Dank vorab.
Liebe GRüße
Dietmar Zwilling aus Aachen
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not Is_Installed Then
AddIns("Analyse-Funktionen").Installed = False
End If
End Sub
Private Sub Workbook_Open()
Is_Installed = AddIns("Analyse-Funktionen").Installed
If Not AddIns("Analyse-Funktionen").Installed Then
AddIns("Analyse-Funktionen").Installed = True
End If
End Sub
Modul Modul1
Option Explicit
Public Is_Installed As Boolean
Gruß Tino
wenn dies ein zweites mal installiert wird (Error?).
Daher habe ich zur Sicherheit eine Abfrage eingebaut, macht ja dass Makro nicht schlechter.
Das geht ohne Probleme.
Schlechter machts das aber auch nicht. Hast recht.
dies bei jedem Wechsel der Datei zu deaktivieren und danach wieder zu aktivieren.
Wenn das Addin schon installiert war ist alles gut.
Dann wirds ja auch nicht deaktiviert.
Ist es allerdings nicht installiert gewesen veränderst du beim Arbeitsmappenwechsel eine Einstellung die der User möglicherweise so gar nicht haben will.
Er hat dann auch in den anderen offenen Mappen das Addin installiert obwohl er seine Gründe hat es nicht zu installieren.
Ist der gleiche Effekt wie hier:
Im Workbook_open wird eine neue Symbolleiste erstellt und im Workbook_beforeclose wird sie wieder gelöscht.
Beim Umschalten zwischen den verschiedenen Offenen Mappen kann ich die neue Symbolleiste aber garnicht brauchen weil sie nur für die eine bestimmte Mappe gedacht war. Evtl. kann sie in den anderen Mappen sogar noch Schaden anrichten.
Jede Einstellung die man in der Arbeistsumgebung des Users vornimmt sollte man auf ein Minimum begrenzen schnellstmöglich wieder zurücksetzen.
ransi
entweder ist es installiert oder nicht.
Stimmt, das ist ja das "Problem".
Beispiel:
Ich habe in meiner Arbeitsumgebung alle Addins deaktiviert.(Warum auch immer..)
Jetzt öffne ich deine Mappe die ein bestimmtes Addin braucht.
Soll sie haben.
Sobald ich jetzt aber wieder in eine andere geöffnete Mappe wechsel, muss ich aber zwingend meine Arbeitsumgebung zurückhaben. Also kein Addin geladen.
Wechsel ich wieder zurück brauch ich wieder das Addin geladen.
Das schaffst du nur wenn du dir den Installationsstatus des Addins beim öffnen merkst und im workbook_deactivate drauf zurückgreifst.
ransi
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not Is_Installed Then
AddIns("Analyse-Funktionen").Installed = False
End If
End Sub
Private Sub Workbook_Open()
On Error GoTo Addin_Error
Is_Installed = AddIns("Analyse-Funktionen").Installed
If Not AddIns("Analyse-Funktionen").Installed Then
AddIns("Analyse-Funktionen").Installed = True
End If
Exit Sub
Addin_Error:
Is_Installed = True
End Sub
Modul Modul1
Option Explicit
Public Is_Installed As Boolean
Gruß Tino