AW: Arbeitsmappenname ändern
24.11.2005 15:14:25
Matthias
Da ich auf den Aufruf von Speichern (unter) reagieren möchte, habe ich mich in das BeforeSave-Event gehängt. Um rekursive Aufrufe zu verhindern, schalte ich die Events vor dem Aufruf des SaveAs-Dialogs aus. Mit Cancel wird das auslösende Speichern abgebrochen, weil das ja bereits erledigt ist. Außerdem blende ich vor dem Speichern das Eingabeblatt aus und ein Initialisierungsblatt ein, auf dem nur eine Nachricht steht, dass die Mappe mit Makroausführung gestartet werden muss (Im Workbook.Open wird dann das Eingabeblatt eingeblendet)
So sieht das jetzt im Zusammenhang aus:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False 'ausschalten, um rekursiven Aufruf zu verhindern
Application.ScreenUpdating = False 'Mappenänderung für Speichern nicht anzeigen
Worksheets("Initialisierung").Visible = True 'Eingabeblatt zum Speichern ausblenden
Worksheets("Eingabe").Visible = xlVeryHidden
If SaveAsUI Then
Application.Dialogs(xlDialogSaveAs).Show NeuerVorschlag 'anderen Speichernamen vorgeben
Else
ActiveWorkbook.Save
End If
Worksheets("Eingabe").Visible = True 'Eingabeblatt wieder einblenden
Worksheets("Initialisierung").Visible = xlVeryHidden
Application.ScreenUpdating = True 'Änderungen wieder anzeigen
Application.EnableEvents = True
Cancel = True 'abbrechen, da bereits gespeichert wurde
End Sub
Vielen Dank für die Hilfe
Matthias