Hallo zusammen,
ich möchte einen Codeblock beim Öffnen einer jeden Mappe ausführen. Er soll also nicht in worbook_open einer Mappe liegen, sondern im installierten Addin. Wie mache ich das?
Grüße
Sven
Hallo Sven,
du kannst den Code zum Beispiel in deine Personal.xlsb unter DieseArbeitsmappe eintragen. Dann wird dieser bei jedem Öffnen einer Mappe ausgeführt.
Gruß
Daniel
AW: Code beim Öffnen einer jeden Mappe ausführen
13.02.2019 15:18:02
Sven
Hallo Daniel,
er müsste aber in ein Addin, welches einem größeren Nutzerkreis zur Verfügung gestellt wird. Dieses Addin läuft also eh schon bei jedem Anwender.
Grüße
Sven
Mit Klassenprogrammierung und einem...
13.02.2019 15:19:43
EtoPHG
einem, _WorkBook_Open() Event, geht das Sven.
Im Netz gibt es Beispiele zur Klassenprogrammierung.
Gruess Hansueli
AW: Code beim Öffnen einer jeden Mappe ausführen
13.02.2019 15:39:38
Nepumuk
Hallo Sven,
im Modul "DieseArbeitsmappe":
OptionExplicit
Private mobjApplicationClass As clsApplication
PrivateSub Workbook_BeforeClose(Cancel AsBoolean) Set mobjApplicationClass = Nothing EndSub
PrivateSub Workbook_Open() Set mobjApplicationClass = New clsApplication EndSub
in einem Klassenmodul mit dem Namen "clsApplication":
OptionExplicit
PrivateWithEvents mobjApplication As Application
PrivateSub Class_Initialize() Set mobjApplication = Application EndSub
PrivateSub Class_Terminate() Set mobjApplication = Nothing EndSub
PrivateSub mobjApplication_WorkbookOpen(ByVal Wb As Workbook) MsgBox Wb.Name EndSub
An Stelle der MsgBox kommt natürlich dein Code.
Gruß
Nepumuk
Anzeige
AW: Code beim Öffnen einer jeden Mappe ausführen
13.02.2019 16:47:26
Sven
Super, vielen Dank.
Funktioniert.
Ich muss jedoch erst mal drüber sinnieren, was da genau passiert. :)
AW: Code beim Öffnen einer jeden Mappe ausführen
14.02.2019 11:35:37
Karl-Heinz
Hallo Max,
habe mich damit (Klassenprogrammierung) noch nicht intensiv beschäftigt. Hast Du vielleicht auch ein Beispiel für Worksheet-Activate, also dass mein AddIn mitkriegt, wenn in einer beliebigen anderen Mappe ein Blatt aktiviert wird.
Krieg es grad nicht hin....
viele Grüße
Karl-Heinz
AW: Code beim Öffnen einer jeden Mappe ausführen
14.02.2019 11:54:13
Nepumuk
Hallo Karl-Heinz,
das ist der identische Code, nur an stelle der Prozedur:
mobjApplication_WorkbookOpen
kommt das:
PrivateSub mobjApplication_SheetActivate(ByVal Sh AsObject) MsgBox Sh.Name EndSub
Wähle in der linken Combobox über dem Codefenster mobjApplication, dann kannst du in der rechten Combobox die zur Verfügung stehenden Events auswählen.
Gruß
Nepumuk