Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Addin nur in bestimmten Mappen
zurück: Dateieigenschaften lesen und schreiben weiter: Array als Funktionsrückgabe Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Isabelle :-)
Menschin


Verfasst am:
22. Mai 2013, 18:19
Rufname:
Wohnort: Westlicher Spiralarm der Galaxis


Addin nur in bestimmten Mappen - Addin nur in bestimmten Mappen

Nach oben
       Version: Office 2007

Hallöchen,

du hast Makros welche nur in mehreren bestimmten Mappen aufgerufen werden dürfen und in anderen nicht. Natürlich könntest du in allen betroffenen Mappen dieselben Makros hinterlegen, aber bei jeder kleinen Änderung musst du alle Mappen ändern.

Das ist kein großes Problem, wenn du die Makros in ein Addin auslagerst und dieses Addin per Verweis an die Mappe bindest. Das geht wie folgt:

1. Nach den du das Addin erstellt und getestet hast musst du als erstes den Projektnamen ändern. Dazu im Projektexplorer auf VBAProject(DeinAddin.xlam) klicken und den Namen VBAProject in einen "beliebigen Namen" (Es gibt dabei, wie bei allen Objektnamen, gewisse Einschränkungen bezüglich der Zeichen und ihrer Anzahl.) ändern. Das so geänderte Addin speichern. Wenn das Ganze in einem Netzwerk funktionieren soll, lässt du dir am besten vorher einen Ordner anlegen auf den nur du und dein Admin schreibenden Zugriff haben, alle anderen nur lesenden. Damit ist es möglich das Addin einfach durch eine neue Version zu ersetzen, auch wenn es von anderen gerade benutzt wird. Beim Nächsten öffnen einer Mappe welche das Addin benötigt wird dann automatisch die aktuelle Version geladen.

2. Jetzt öffnest du die erste Mappe welche die Makros enthalten soll. Im VBA-Editor unter Extras rufst du den "Verweise-Dialog" auf. Klick auf den Button "Durchsuchen" und ändere im sich öffnenden Dateibrowser ganz unten den Dateityp auf Microsoft Office Excel Files (*.xlsm;*.xlam;*.xls;*.xla). Suche nun den Ordner der das Addin enthält und öffne es mit einem Doppelklick. Der Dialog kann nun geschlossen werden. Im Projektexplorer siehst du jetzt schon den Verweis auf das Addin, und wenn es vorher geschlossen war, so wurde es durch den Verweis automatisch geöffnet. Keine Angst, es wird nur einmal geöffnet, auch wenn du mehrere Mappen öffnest welche den Verweis enthalten.

3. Damit das Addin weiß in welcher Mappe es aktiv sein soll benötigen wir ein Merkmal in der Mappe. Ich benutze dazu einen unsichtbaren Namen. Dazu fügst du ein Modul ein und kopierst folgenden Code in dieses Modul:

Code:
Option Explicit
Option Private Module

Public Sub InsertLinkName()

    Const LINK_NAME = "AddinProject"

    Call ThisWorkbook.Names.Add(Name:=LINK_NAME, _
        RefersTo:=Array(vbNullString), Visible:=False)

End Sub

Setz den Cursor in den Code und starte ihn mit F5. Im Prinzip kannst du den Code nun wieder löschen, aber die paar Bytes die er benötigt stören auch nicht.

Wenn du willst, dass die Mappe nicht ohne das Addin gestartet werden kann, benötigen wir zwei weitere Prozeduren.

Im Modul "DieseArbeitsmappe":

Code:
Option Explicit

Private Sub Workbook_Open()
    Call Application.OnTime(Now, "SearchAddin")
End Sub

In unserem zuvor eingefügten Modul:

Code:
 Public Sub SearchAddin()

    Dim blnAddinAvailable As Boolean

    On Error Resume Next

    blnAddinAvailable = Application.Run("AddIn.xlam!SearchMe") 'Name des Addins anpassen !!!

    If Not blnAddinAvailable Then

        Call MsgBox("Das erforderliche Addin ist nicht verfügbar." & _
            vbLf & vbLf & "Die Mappe wird geschlossen.", vbCritical, "Abbruch")

        Call ThisWorkbook.Close(SaveChanges:=False)

    End If
End Sub

Jetzt ist die erste Mappe fertig und du kannst sie speichern und schließen. Diese Prozedur wiederholst du nun für alle Mappen welche die Makros enthalten sollen.

Und nun zum Addin selbst.

Wie du den Code darin aufrufst bleibt natürlich dir überlassen, ich bevorzuge den Weg über die Ribbons, was im Beispiel auch so implementiert ist. Zusätzlich habe ich aber auch noch eine Schaltfläche und einen CommandButton in die Testmappe eingebaut sowie eine Worksheet_Change-Eventprozedur damit du siehst wie die Aufrufe im Einzelnen erfolgen müssen.

Den Code im Addin habe ich ausreichend kommentiert, so dass du ihn sicher verstehst.

Das funktioniert natürlich nicht nur in normalen Arbeitsmappen sondern genauso in einer Vorlage (.xltm). Die aus der Vorlage erstellten Klone erben natürlich den Verweis und damit die komplette Funktionalität der Vorlage.

Wenn du Fragen hast, dann schreib mir bitte eine PM. Wir machen einen Thread auf um die Fragen dazu zusammenzuhalten. Ich werde versuchen diese Fragen dann hier in die Beschreibung mit einzuarbeiten.

_________________
LG Isi

Die Mitgliedschaft im Forum erhöht deine Chance auf eine Antwort von mir um 99,999%



Addin_per_Verweis.zip
 Beschreibung:

Download
 Dateiname:  Addin_per_Verweis.zip
 Dateigröße:  52.81 KB
 Heruntergeladen:  48 mal

Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Bestimmten Teil aus Zelle übernehmen 7 DreBa 28691 21. Dez 2006, 17:06
DreBa Bestimmten Teil aus Zelle übernehmen
Keine neuen Beiträge Excel Formeln: Diagramm nur aus bestimmten Intervall 1 gast22 1027 08. Dez 2006, 15:46
treiter Diagramm nur aus bestimmten Intervall
Keine neuen Beiträge Excel Formeln: summe mit summewenn? ab einem bestimmten Tag 1 Gast 1116 20. Nov 2006, 16:15
12und20zig summe mit summewenn? ab einem bestimmten Tag
Keine neuen Beiträge Excel Formeln: Zellen mit bestimmten Wert...Wieviele? 7 Gast 810 11. Mai 2006, 17:32
Gast Zellen mit bestimmten Wert...Wieviele?
Keine neuen Beiträge Excel Formeln: Matrix nach bestimmten Wert durchsuchen 4 vision5 7430 17. Apr 2006, 22:30
vision5 Matrix nach bestimmten Wert durchsuchen
Keine neuen Beiträge Excel Formeln: Spalte von Bis Mit wenn funktion und mappen verknüpfung..=) 3 zwulk 1483 13. Apr 2006, 13:59
UweN Spalte von Bis Mit wenn funktion und mappen verknüpfung..=)
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Excel Formeln: Verknüpfung von zwei Mappen 2 Schneeschieber 1015 26. März 2006, 12:49
fridgenep Verknüpfung von zwei Mappen
Keine neuen Beiträge Excel Formeln: "Warnhinweis" bei erreichen eines bestimmten Datum 4 yoogula777 2016 22. März 2006, 12:49
yoogula777 "Warnhinweis" bei erreichen eines bestimmten Datum
Keine neuen Beiträge Excel Formeln: Summe für einen bestimmten Bereich berechnen? 6 bruce 2852 07. Nov 2005, 20:14
Gast Summe für einen bestimmten Bereich berechnen?
Keine neuen Beiträge Excel Formeln: Formel nur benutzen wenn Daten im bestimmten Feld vorhanden. 1 Nemi 1831 22. Aug 2005, 13:27
fridgenep Formel nur benutzen wenn Daten im bestimmten Feld vorhanden.
Keine neuen Beiträge Excel Formeln: VRunden Add-In 1 Gast 2006 15. Mai 2005, 16:45
fl618 VRunden Add-In
Keine neuen Beiträge Excel Formeln: restzeit bis zu einem bestimmten Datum 2 Jericho2000 1749 07. Apr 2005, 11:50
Jericho2000 restzeit bis zu einem bestimmten Datum
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: MS Frontpage