Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Speichernabfrage beim Schließen der Arbeitsmappe

Gruppe

BeforeClose

Problem

Wie kann ich bei jedem Schließen einer bestimmten Arbeitsmappe abfragen, ob die Datei unter dem in Zelle A1 stehenden Namen gespeichert werden soll? Wenn die Datei bereits besteht, soll eine Sicherheitsabfrage erfolgen.

Lösung
Geben Sie den Ereigniscode in das Klassenmodul der Arbeitsmappe ein.

ClassModule: DieseArbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Dim vSave As Variant
   Dim sFile As String
   sFile = ThisWorkbook.Worksheets("Tabelle1").Range("B1").Value
   If Right(sFile, 3) <> "xls" Then sFile = sFile & ".xls"
   If Dir(sFile) <> "" Then
      vSave = MsgBox("Datei überschreiben?", vbYesNoCancel)
      If vSave = vbYes Then
         Application.DisplayAlerts = False
         ThisWorkbook.SaveAs sFile
         Application.DisplayAlerts = True
      ElseIf vSave = vbCancel Then
         Cancel = True
      Else
         Cancel = False
      End If
   Else
      ThisWorkbook.SaveAs sFile
   End If
End Sub