Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Häufige Fragen

Abfrage / Warnung ausschalten

Autor: Peter Haserodt - Erstellt: --      - Letzte Revision: --
Abfrage/Warnung ausschalten

Wenn man per Code Aktionen durchführt, bei denen Excel den Anwender nochmal befragt ob er denn dies wirklich tun wolle, ist dies oft unerwünscht.
Wir wollen ja dann den Befehl ausführen, ohne dass noch etwas bestätigt werden muss.
Ein typisches Beispiel ist das Löschen eines Tabellenblattes.
(Wir gehen mal davon aus, dass wir das erste Worksheet löschen wollen und dies auch existiert)
Der nachfolgende Code produziert genau diese Abfrage an den Anwender:

Public Sub WegMit()
ThisWorkbook.Worksheets(1).Delete
End Sub
VBA bietet nun die wunderbare Möglichkeit, solche Sicherheitswarnungen abzuschalten.
DisplayAlerts was soviel heißt wie Warnung anzeigen.
Setze ich dies auf false, werden Warnungen unterdrückt. Aber Achtung, dies kann auch so bleiben, bis ich wieder dafür sorge, dass die Warnungen wieder angezeigt werden.

Nachfolgender Code ist ein absolut schlechtes Beispiel, wie es gemacht werden könnte:

Public Sub WegMit()
' Achtung, schlechtes Beispiel !!!
Application.DisplayAlerts = False
ThisWorkbook.Worksheets(1).Delete
Application.DisplayAlerts = True
End Sub
Bei Fehlern die auftreten, hinterlasse ich dem Anwender im unglücklichen Fall ein Excel, welches auf einmal keine Warnungen mehr ausgibt. Dies muss man natürlich auf jeden Fall vermeiden.
Was ich im Code mache, ist eine Seite aber was ich dem Anwender hinterlasse, eine Andere!
Sie ahnen schon, eine Fehlerbehandlung ist absolut notwendig.
Vereinfacht kann diese so aussehen:

Public Sub WegMit()
On Error GoTo DispFehler
Application.DisplayAlerts = False
ThisWorkbook.Worksheets(1).Delete
DispFehler:
Application.DisplayAlerts = True
End Sub
Selbstverständlich fehlt hier vom Prinzip die eigentliche Fehlerbehandlung, nämlich dass ich aus irgendwelchen Gründen Worksheet 1 nicht löschen konnte, aber dies soll hier nicht das Thema sein.
Viel wichtiger ist es, Sie darauf aufmerksam zu machen, dafür Sorge zu tragen, dass auf jeden Fall wieder das DisplayAlerts eingeschaltet wird.

Lassen Sie sich aber vor allem nicht davon irritieren, dass in verschiedenen Fällen Excel die Warnmeldungen wieder selbst einschaltet. Sie können nicht sicher sein!!!


Weitere Artikel der Gruppe: Häufige Fragen Aus Excel VBA
Nach oben