Wer kann mir die paar Zeilen für VBA liefern, damit folgendes passiert:
Wenn die Excel-Tabelle geschlossen wird, soll eine Message-Box erscheinen, welche den Text : Checkliste kontrolliert? bringt.
Button „ja“ für Datei speichern und schliessen, ansonsten „abbrechen“ und „nein“, die Datei bleibt offen.
Private Sub Workbook\_BeforeClose(Cancel As Boolean)
Dim Meldung As VbMsgBoxResult
Meldung = MsgBox("Checkliste kontrolliert?", vbYesNoCancel)
If Meldung = vbCancel Or Meldung = vbNo Then Cancel = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Meldung As VbMsgBoxResult
Meldung = MsgBox(„Checkliste kontrolliert?“,
vbYesNoCancel)
If Meldung = vbCancel Or Meldung = vbNo Then Cancel = True
End Sub
Viele Grüße
Hallo Carsten
Darf ich Dich dazu etwas fragen? Ich habe eine zweite Bedingung eingefügt:
If Meldung = vbYes Then ActiveWindow.Close SaveChanges:=True
Bei JA sollte die Datei automatisch (ohne Rückfrage) gespeichert und geschlossen werden. Diese zweite Bedingung funktioniert bei mir aber nicht. Ich bleibe schon bei der msg-box-Frage hängen, die ich Abbrechen muss. Weisst Du da Rat?
Vielen Dank und freundliche Grüsse
Niclaus
If Meldung = vbYes Then ActiveWindow.Close SaveChanges:=True
Bei JA sollte die Datei automatisch (ohne Rückfrage)
gespeichert und geschlossen werden. Diese zweite Bedingung
funktioniert bei mir aber nicht. Ich bleibe schon bei der
msg-box-Frage hängen, die ich Abbrechen muss. Weisst Du da
Rat?
Hi Niclaus,
im Dokumentmodul von „DieseArbeitsmappe“:
Private Sub Workbook\_BeforeClose(Cancel As Boolean)
Dim Eingabe As Integer
Static NichtReagieren As Boolean
If NichtReagieren = True Then Exit Sub
NichtReagieren = True
Cancel = True
Eingabe = MsgBox("Haben Sie XYZ ausgefüllt?", vbOKCancel, "Ausfüllabfrage")
If Eingabe = vbOK Then
ThisWorkbook.Close savechanges:=True
End If
MsgBox "Bitte Xyz ausfüllen"
NichtReagieren = False
End Sub