Globales Ereignis 'Mappe schließen' : KLASSE
29.03.2010 15:29:46
NoNet
Hallo Lorenz,
um das Ereignis "Mappe schließen" global abzufangen, benötigst Du ein eigenes Klassenmodul
- hier ein Beispiel :
Dieser Code gehört in das Klassenmodul "DieseArbeitsmappe" (z.B: in ein AddIn oder in dei geladene PERSONL.XLS) :
Dim appXL As clsXLApp
Private Sub Workbook_Open()
Set appXL = New clsXLApp
Set appXL.appXLClose = Application
End Sub
Erstelle nun im AddIn oder in der PERSONL.XLS ein neues Klassenmodul ("Einfügen - Klassenmodul") und benenne es per Taste F4 um, neuer Name : clsXLApp
Kopiere in das Klassenmodul clsXLApp den folgenden Code :
Public WithEvents appXLClose As Application
Private Sub appXLClose_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
MsgBox "Die folgende Datei wird gerade geschlossen : " & vbLf & vbLf & Wb.Name, _
vbOKOnly + vbInformation, "Globales Ereignis des Klassenmoduls erkannt : "
End Sub
Starte nun das Makro Workbook_Open() manuell oder indem Du die PERSONL.XLS speicherst, Excel beendest und neu startest.
Alle (geöffneten) Dateien werden nun über das globale Ereignis im Klassenmodul "überwacht" und es erscheint eine entsprechende Meldung, wenn Du die Datei schließt :
Gruß, NoNet