Kann mir jemand sagen, was ich ergänzen muß, um bei Application.Quit die Abfrage "Speichern ja/nein" zu unterbinden und sofort auf nein zu setzen?
Gruß Andre
Öffne den VBA-Editor in Excel, indem Du ALT + F11 drückst.
Erstelle ein neues Modul: Klicke mit der rechten Maustaste im Projekt-Explorer auf „VBAProject (DeinWorkbook)“ und wähle „Einfügen“ > „Modul“.
Füge den folgenden Code ein:
Sub QuitWithoutSaving()
Application.DisplayAlerts = False ' Deaktiviert die Speicherabfrage
Application.Quit ' Beendet Excel
End Sub
Starte das Makro: Drücke F5, um das Makro auszuführen. Excel wird nun ohne die Abfrage „Speichern ja/nein“ geschlossen.
Fehler: Excel zeigt trotzdem die Speicherabfrage an.
Application.DisplayAlerts korrekt auf False gesetzt ist, bevor Du Application.Quit aufrufst.Fehler: Das Makro funktioniert nur für das aktuelle Workbook.
ThisWorkbook.Saved = True setzen, bevor Du Application.Quit ausführst. Eine weitere Methode zur Vermeidung der Speicherabfrage ist die Verwendung des ThisWorkbook-Objekts:
Sub QuitWithThisWorkbook()
ThisWorkbook.Saved = True ' Setzt den Speicherstatus auf gespeichert
Application.Quit ' Beendet Excel
End Sub
Diese Methode kann jedoch problematisch sein, wenn Du mehrere offene Workbooks hast, die nicht gespeichert sind.
Hier sind zwei einfache Makros, die die verschiedenen Methoden zeigen:
Mit DisplayAlerts:
Sub QuitWithDisplayAlerts()
Application.DisplayAlerts = False
Application.Quit
End Sub
Mit ThisWorkbook:
Sub QuitWithThisWorkbook()
ThisWorkbook.Saved = True
Application.Quit
End Sub
Du kannst beide Makros testen und sehen, welche Methode für Deine Bedürfnisse am besten geeignet ist.
Application.DisplayAlerts = False immer in Kombination mit Application.Quit, um sicherzustellen, dass alle Abfragen unterdrückt werden.1. Frage: Was passiert, wenn ich Application.Quit ohne vorherige Maßnahmen benutze?
Antwort: Excel wird die Speicherabfrage anzeigen, und Du musst manuell entscheiden, ob Du speichern möchtest oder nicht.
2. Frage: Kann ich DisplayAlerts dauerhaft deaktivieren?
Antwort: Ja, Du kannst dies in Deinen VBA-Optionen festlegen, jedoch ist es ratsam, es nur temporär für bestimmte Makros zu verwenden, um unbeabsichtigte Datenverluste zu vermeiden.