Ich möchte meine eigene Speicher-Routine und verwende hierfür folgenden Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
If SaveAsUI Then
Application.Dialogs(xlDialogSaveAs).Show ("Text_" & Format(Date, "DDMMYY")), _
xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.Save
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
Cancel = True
End Sub
Funktioniert soweit ganz gut, mit folgender Ausnahme:
- eine zweite Datei ist im Hintergrund geöffnet (kann eine leere neue Mappe sein)
- die Datei mit obigem Code ist aktiv und das BeforeSave Ereignis wird durch Schliessen der Datei mittels Kreuz rechts oben ausgelöst
In dieser Kombination wird der Save-Dialog mehrmals gestartet d.h. Endlosschleife solange man "Wollen Sie speichern" mit ja beantwortet.
Wäre schön, wenn jemand einen Lösungsansatz hat.
(kleine Randbemerkung: Mache ich statt Cancel = True, Thisworkbook.Cancel = True, dann läuft es zwar als *.xlsm, aber ich muss die Datei als Vorlage *.xltm speichern, dann geht es erst recht nicht mehr d.h. Cancel wird gar nicht ausgeführt)
Danke im Voraus und viele Grüsse
Chris