Ich erstelle aus einer Excel-Mappe heraus eine weitere Mappe. Dieser neuen Mappe werden auch Makros mitgegeben.
Normalerweise sollte die Mappe am Ende wieder gelöscht werden Es gibt aber auch manchmal Gründe dafür, die Mappe zu speichern.
Bei meinen Versuchen habe ich festgestellt, dass der "ThisWorkbook.Path" nicht geffüllt ist, wenn die Mappe zuvor noch nie gesichert wurde. Ich wollte dann den Event "Workbook_BeforeClose" benutzen, um die Mappe ohne Sicherung und ohne weiteren Eingriff des Anwenders zu schließen. Doch irgendwie funktioniert das nicht richtig. Und obwohl der Befehl "Application.Quit" ausgeführt wurde, wird die Mappe und damit auch Excel nicht beeendet.Erst der nachfolgende "ActiveWorkbook.Close SaveChanges:=False" schließt die Mappe; Excel bleibt jedoch aktiv.
Zuerst hatte ich den Befehl "Application.EnableEvents = False" nicht gesetzt; als Folge davon wurde nach "ActiveWorkbook.Close" der Event erneut durchlaufen.
Was ist an nachfolgendem Code falsch?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = False
If ThisWorkbook.Path = "" Then ' Mappe wurde noch nie gesichert
If Workbooks.Count = 1 Then
Application.DisplayAlerts = False
Application.Quit
End If
ActiveWorkbook.Close SaveChanges:=False
Cancel = True
Else
Cancel = False
End If
Application.EnableEvents = True
End Sub
Gruß W H21