Eine Familie von Microsoft-Tabellenkalkulationsprogrammen mit Tools zum Analysieren, Darstellen und Vermitteln von Daten.
Es wird erst das beforeClose-Ereignis aktiv und danach das beforeSave.
Genau dadurch entsteht das Problem, dass ich, wenn die Datei geschlossen wird noch nicht weiß, ob die Datei gespeichert wird (werden soll).
Hmm... hab ich mich vertan? Sieht so aus, Entschuldigung. Spielt aber nicht wirklich eine Rolle.
Ob die Datei gespeichert werden soll oder nicht weißt Du in dem Momemt wenn Workbook_BeforeSave aufgerufen wird.
Und einen Dialog zeigst Du nur wenn SaveAsUI True ist. Oder prüfst irgendwas... wenn die Prüfung fehlschlägt, dann setzt Du Cancel auf True und fertig, die Datei bleibt offen.
Soll die Datei ohne speichern geschlossen werden, dann gibst Du eine Fehlermeldung aus und setzt Du zusätzlich Saved auf True.
Was willst Du mit Workbook_BeforeClose? Das brauchst Du in dem Fall doch überhaupt nicht.
Wenn Workbook_BeforeClose kommt soll die Datei geschlossen werden, das kommt auch wenn der User nicht speichern möchte. An dem Punkt ist das nicht unterscheidbar.
Nachtrag:
Um beim Speichern zu wissen ob die Datei geschlossen werden soll oder nicht ist dieses Szenario denkbar:
Option Explicit
Dim CloseMode As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
CloseMode = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If CloseMode Then
Cancel = True
ThisWorkbook.Saved = True
Else
'Was auch immer
End If
End Sub
Wie auch immer, Dein Code muss in Workbook_BeforeSave.
Andreas.