TL;DR —
Application.DisplayAlerts = Falseweist Excel an, seine Bestätigungs- und Warndialoge nicht mehr anzuzeigen, während Ihr Makro läuft, sodass ein Makro ein Blatt löschen oder eine Datei überschreiben kann, ohne anzuhalten und einen Menschen um einen Klick auf OK zu bitten. Der Haken ist, dass es die Frage nicht abbricht — es beantwortet sie mit Excels Standardantwort, und bei destruktiven Aufforderungen lautet dieser Standard „nur zu“. Schalten Sie es wieder ein, sobald die riskante Zeile erledigt ist, und stellen Sie es in einem Fehlerhandler wieder her, damit ein Absturz die Warnungen nicht abgeschaltet lassen kann, während eine spätere Aufforderung automatisch beantwortet wird:
Sub DeleteSheetQuietly()
Application.DisplayAlerts = False ' Excel fragt nicht mehr "sind Sie sicher?"
On Error GoTo CleanExit ' damit ein Fehler die Warnungen nicht abgeschaltet zuruecklaesst
ThisWorkbook.Worksheets("Temp").Delete ' keine Nachfrage - Excel loescht es einfach
CleanExit:
Application.DisplayAlerts = True ' Warnungen sofort wieder einschalten
End Sub
Vor einer Handvoll riskanter Operationen — ein Blatt löschen, über eine bestehende Datei speichern, mit
ungespeicherten Änderungen schließen — hält Excel an und wirft einen Dialog auf, um sicherzugehen, dass
ein Mensch das wirklich wollte. Das ist genau das richtige Verhalten für jemanden, der herumklickt, und
genau das falsche für ein Makro, das von Anfang bis Ende von selbst laufen soll. DisplayAlerts = False
entfernt die Unterbrechung. Diese Anleitung ruht auf einer Idee — DisplayAlerts bringt die Warnung
nicht zum Schweigen, es beantwortet sie für Sie mit Excels Standard, und bei destruktiven Aufforderungen
lautet der Standard ja. Sobald Sie es so sehen, wissen Sie, wohin es gehört (eine bestimmte
Aufforderung, die Sie kennen und verstehen) und wo es eine geladene Waffe ist (ein ganzes Makro pauschal
abdecken, das Sie nicht geprüft haben).
Was Sie lernen
- Das mentale Modell — Excel fragt vor riskanten Operationen nach; dieser Schalter antwortet mit dem Standard
- Wo die Standardantwort „ja, zerstöre es“ lautet — die Aufforderungen, die still und gefährlich werden
- Die wichtigste Regel — das Fenster auf die eine Zeile eingrenzen, die es braucht, dann wiederherstellen
- Warum
DisplayAlerts = Falsekeine Fehlerbehandlung ist — ein Laufzeitfehler stoppt Ihr Makro trotzdem - Wie es sich von ScreenUpdating, Calculation und EnableEvents unterscheidet
- Wann Sie den Dialog tatsächlich wollen — und stattdessen zu MsgBox greifen
Das mentale Modell: Excel fragt, dieser Schalter antwortet mit dem Standard
Eine kleine Gruppe von Excel-Operationen wird als „sind Sie sicher?“-Momente behandelt. Löschen Sie ein
Arbeitsblatt, warnt Excel, dass es endgültig ist. SaveAs auf einen bereits existierenden Dateinamen,
und es fragt vor dem Überschreiben. Schließen Sie eine Arbeitsmappe mit ungespeicherten Änderungen, und
es bietet an zu speichern. Jede dieser Operationen wirft einen modalen Dialog auf und wartet auf
einen Klick.
Application.DisplayAlerts = False weist Excel an, den Dialog zu überspringen und mit seiner
Standardschaltfläche fortzufahren — jener, die vorab hervorgehoben ist, wenn das Kästchen erscheint.
Es blendet das Kästchen nicht aus und pausiert; es wählt eine Antwort und macht weiter. Diese
Unterscheidung ist der ganze Artikel. Sie stellen keine Nörgelei stumm, Sie genehmigen eine
Entscheidung im Voraus — und Excels Standard bei einem Löschen oder Überschreiben ist, es zu tun.
Application.DisplayAlerts = False ' Excel fragt nicht mehr und nutzt die Standardantwort
' ... die riskante Operation laeuft ohne Dialog ...
Application.DisplayAlerts = True ' das Nachfragen setzt wieder ein
Wo die Standardantwort „ja, zerstöre es“ lautet
Das ist der Teil, den die Tutorials zum „Warnmeldungen ausschalten“ überspringen. Hier ist, was der unterdrückte Standard tatsächlich tut:
| Operation | Der Dialog, den Sie unterdrückt haben | Was DisplayAlerts = False tut |
|---|---|---|
Worksheets("X").Delete |
„Dieses Blatt wird endgültig gelöscht“ | Löscht es, ohne Bestätigung |
SaveAs über eine bestehende Datei |
„Es existiert bereits eine Datei — ersetzen?“ | Überschreibt die alte Datei |
Close mit ungespeicherten Änderungen |
„Möchten Sie speichern?“ | Nutzt den Standard (verwirft evtl. Änderungen) |
| Einfügen über nicht-leere Zellen | „Inhalt überschreiben?“ | Überschreibt ihn |
Jeder dieser Fälle ist einer, in dem die Warnung existierte, um Sie zu schützen, und sie abzuschalten macht die Operation nicht sicherer — es macht sie still. Ein Mensch hätte das Kästchen gelesen und die Chance gehabt, Nein zu sagen. Ihr Makro sagt zu allen Ja, sofort, ohne jede Spur.
Die wichtigste Regel: das Fenster eingrenzen, dann wiederherstellen
Weil Sie Excels Standards im Voraus genehmigen, wächst die Gefahr mit der Dauer, für die die Warnungen
abgeschaltet bleiben, und damit, wie viel während dieses Fensters läuft. Die Disziplin ist das
Gegenteil der Geschwindigkeitsschalter, bei denen Sie das ganze Makro umschließen. Bei DisplayAlerts
umschließen Sie nur die eine Operation, die es braucht:
' GUT - das Fenster ist eine Zeile breit
Application.DisplayAlerts = False
ThisWorkbook.Worksheets("Temp").Delete
Application.DisplayAlerts = True
' ... der Rest des Makros laeuft mit wieder eingeschalteten Warnungen ...
' RISKANT - die Warnungen sind fuers ganze Makro abgeschaltet
Application.DisplayAlerts = False
' ... 200 Zeilen, von denen jede auf eine Ueberschreib- oder Loeschaufforderung treffen koennte ...
Application.DisplayAlerts = True
In der riskanten Variante wird, wenn irgendeine Zeile in diesem Block eine unerwartete Aufforderung
„diese Datei überschreiben?“ oder „diesen Bereich leeren?“ auslöst, mit „ja“ beantwortet, noch bevor Sie
überhaupt mitbekommen, dass es passiert ist. Halten Sie das Fenster eng und sichern Sie es trotzdem mit
On Error GoTo CleanExit ab, damit Sie, falls die riskante Zeile selbst einen Fehler wirft, die
Warnungen nicht abgeschaltet lassen, während die nächste Aufforderung im Makro automatisch bestätigt
wird. Die Wiederherstellung gehört zu derselben CleanExit-Label-Disziplin, die der ganze Cluster teilt
— siehe VBA On Error.
Es setzt sich selbst zurück — aber verlassen Sie sich nicht darauf
Anders als Calculation und EnableEvents, die
abgeschaltet bleiben, bis Sie oder ein Neustart sie wieder einschalten, setzt sich DisplayAlerts
automatisch auf True zurück, wenn Ihr Makro endet und die Steuerung an Excel zurückgeht. Das klingt,
als mache es die Wiederherstellungszeile optional. Tut es nicht, aus zwei Gründen:
- Der Schaden ist bereits angerichtet. Das automatische Zurücksetzen geschieht nachdem das Makro endet. Wenn in Zeile 40 still ein Blatt gelöscht wurde, bringt das Zurücksetzen der Warnungen in Zeile 200 es nicht zurück.
- Es zählt das Fenster, nicht das Ende. Zwischen „abschalten“ und „die Steuerung geht an Excel zurück“ wird jede Aufforderung automatisch beantwortet. Ein Fehler mitten im Makro, der Ihre Wiederherstellung überspringt, lässt die Warnungen für alles Weitere in diesem Aufruf abgeschaltet. Die ausdrückliche Wiederherstellung hält das Fenster genau so breit, wie Sie es beabsichtigt haben.
Behandeln Sie das automatische Zurücksetzen also als Sicherheitsnetz für die Sitzung, nicht als Grund, die Zeile wegzulassen. Setzen Sie es selbst zurück, direkt nach der Operation, die es abgeschaltet brauchte.
Warum es keine Fehlerbehandlung ist
Eine häufige Verwechslung: Man setzt DisplayAlerts = False in der Erwartung, das Makro werde sich
durch einen Laufzeitfehler hindurchkämpfen — als unterdrücke es alle Unterbrechungen. Tut es nicht.
Es unterdrückt Excels Bestätigungs- und Warndialoge. Ein echter Laufzeitfehler (ein 1004 durch einen
fehlerhaften Bereich, ein Typkonflikt, eine nicht gefundene Datei) wird trotzdem ausgelöst und stoppt Ihr
Makro nach wie vor eiskalt.
Application.DisplayAlerts = False
Workbooks.Open "C:\does-not-exist.xlsx" ' loest trotzdem run-time error 1004 aus - abgeschaltete Warnungen helfen nicht
Wenn Ihr Makro Fehler überleben soll, ist das die Aufgabe von On Error, nicht
diese hier. DisplayAlerts entscheidet, ob Excel fragt; On Error entscheidet, was geschieht, wenn
etwas kaputtgeht. Zwei verschiedene Probleme, zwei verschiedene Werkzeuge.
DisplayAlerts gegen die Schalter, neben die es oft gesetzt wird
Sie werden DisplayAlerts = False am Anfang eines Makros neben ScreenUpdating und Calculation sehen,
und es ist leicht, sie alle unter „Standardgerüst, das man zum Beschleunigen setzt“ abzulegen. Sie sind
nicht dieselbe Art von Sache:
- ScreenUpdating ist kosmetisch — schlimmstenfalls ein eingefroren wirkendes Fenster, das ein Neustart behebt.
- Calculation geht es um die Korrektheit von Zahlen — abgeschaltet gelassen, zeigt es veraltete Werte.
- EnableEvents geht es um die Korrektheit von Ereignissen — abgeschaltet gelassen, hören die Handler der Arbeitsmappe auf zu feuern.
DisplayAlertsgeht es um Entscheidungen — es lässt Excel destruktive Aktionen ohne Nachfrage vollziehen.
Und es ist das einzige, das sich normalerweise selbst korrigiert und dennoch innerhalb des Fensters irreversiblen Schaden anrichten kann. Die anderen versagen lautstark (eingefrorener Bildschirm) oder still, aber behebbar (die Neuberechnung korrigiert veraltete Zahlen). Ein Blatt, das bei abgeschalteten Warnungen gelöscht wurde, ist schlicht weg.
Wie ExcelMaster hilft
DisplayAlerts ist eine Zeile, doch es gut einzusetzen heißt, das Fenster auf die einzige Operation zu
beschränken, die es braucht, es in einem Fehlerhandler wiederherzustellen und es nie mit
Fehlerbehandlung oder einem pauschalen „mach mein Makro still“-Schalter zu verwechseln. Das ist eine
Menge Urteilsvermögen für eine Eigenschaft, die man am Anfang jedes Makros einfügt.
ExcelMaster schreibt
standardmäßig die sorgfältige Variante. Bitten Sie es, „die Temp-Blätter ohne die Bestätigungs-Pop-ups zu
löschen“, und es schaltet die Warnungen genau um diese Löschungen herum ab, stellt sie in einem
CleanExit-Handler wieder her und lässt den Rest des Makros mit intakten Warnungen — so bekommen Sie den
unbeaufsichtigten Lauf, ohne im Stillen jede Aufforderung vorab zu genehmigen, die Excel aufgeworfen
hätte.
Häufig gestellte Fragen
Was macht Application.DisplayAlerts = False in VBA?
Es weist Excel an, seine Bestätigungs- und Warndialoge während des Makrolaufs nicht mehr anzuzeigen und
stattdessen mit der Standardantwort jedes Dialogs fortzufahren. Operationen, die normalerweise
nachfragen würden — ein Blatt löschen, bei SaveAs eine Datei überschreiben, mit ungespeicherten
Änderungen schließen —, geschehen ohne Aufforderung. Es verbirgt keine Laufzeitfehler, nur Excels
eingebaute Warnungen.
Muss ich DisplayAlerts wieder auf True setzen?
Excel setzt es automatisch auf True zurück, wenn das Makro endet, sodass Sie es nicht über Sitzungen
hinweg abgeschaltet lassen. Trotzdem sollten Sie es ausdrücklich wiederherstellen, direkt nach der
Operation, die es abgeschaltet brauchte, denn jede Aufforderung, die während es abgeschaltet ist
erscheint, wird automatisch beantwortet. Setzen Sie die Wiederherstellung in einen Fehlerhandler
(On Error GoTo CleanExit), damit ein Absturz mitten im Makro die Warnungen nicht für alles Weitere
abgeschaltet lassen kann.
Verhindert DisplayAlerts = False, dass mein Makro bei Fehlern abstürzt?
Nein. Es unterdrückt Excels Bestätigungs- und Warndialoge, nicht die Laufzeitfehler von VBA. Ein
fehlerhafter Dateipfad, ein ungültiger Bereich oder ein Typkonflikt löst weiterhin einen Fehler aus und
stoppt das Makro. Um Fehler zu behandeln, nutzen Sie On Error — das ist ein von
DisplayAlerts getrennter Mechanismus.
Warum wurde mein Blatt gelöscht oder meine Datei ohne Warnung überschrieben?
Weil DisplayAlerts = False in Kraft war, sodass Excel die Standardantwort für die „sind Sie
sicher?“-Aufforderung nutzte — und bei einem Blatt löschen oder einer Datei überschreiben lautet der
Standard, es zu tun. Grenzen Sie das Fenster ein, sodass die Warnungen nur um die eine beabsichtigte
Operation herum abgeschaltet sind, und schalten Sie sie unmittelbar danach wieder ein.
Was ist der Unterschied zwischen DisplayAlerts, ScreenUpdating und Calculation?
Sie steuern Verschiedenes. DisplayAlerts entscheidet, ob Excel vor riskanten Operationen fragt.
ScreenUpdating stoppt Bildschirm-Neuzeichnungen (kosmetisch).
Calculation stoppt die Formel-Neuberechnung (abgeschaltet gelassen zeigt es
veraltete Zahlen). Sie werden oft zusammen gesetzt, aber jeden einzelnen zu vergessen kostet etwas völlig
Verschiedenes.
Getestet in
Getestet in: Excel 365 (Windows 11), VBA 7.1 — zuletzt geprüft am 18.08.2026.
Verwandte Anleitungen: VBA StatusBar · VBA DoEvents · VBA ScreenUpdating · VBA On Error · VBA MsgBox
