Warnmeldungen per VBA abschalten

Warnmeldungen per VBA abschalten

So unterdrücken Sie VBA-Warnmeldungen

Wenn Sie makrogesteuert Arbeitsmappen oder Tabellen löschen oder andere schwerwiegende Vorgänge ausführen, fragt Excel nach dem Start des Makros beim Anwender nach, ob das wirklich gewünscht ist. Die folgende Abbildung zeigt, wie das Fenster aussehen kann:

 

Grundsätzlich ist dieses Fenster sicher hilfreich, verhindert es doch das versehentliche Löschen von wichtigen Daten. In vielen Fällen ist das Fenster ab störend und verwirrend für den Anwender. Stellen Sie sich eine VBA-Lösung vor, in der Tabellen für interne Rechenschritte angelegt und wieder gelöscht werden müssen. Dann sorgt das Hinweisfenster beim Anwender für Schwierigkeiten, weil der Anwender gar nicht wissen kann, wie das Makro intern arbeitet.

In solchen Fällen ist es sinnvoll, das Warnfenster abzuschalten. Da können Sie erledigen, indem Sie der Eigenschaft DisplayAlerts den Wert False zuweisen. Das folgende Makro erledigt das und löscht danach das erste Tabellenblatt aus der Tabelle, in der sich auch das Makro befindet:

Sub SchalteWarnungAus()
Application.DisplayAlerts = False
ThisWorkbook.Sheets(1).Delete
Application.DisplayAlerts = True
End Sub

Eine Warnmeldung zeigt das Makro nicht an, weil die Warnmeldung mit dem ersten Befehl ausgeschaltet wurde. Vor dem Ende des Makros werden alle Warnmeldungen wieder eingeschaltet. Denken Sie daran unbedingt! Zu jedem Kommando, mit dem Sie DisplayAlerts auf False setzen, gehört auch ein Kommando, mit dem Sie die Warnfenster wieder einschalten, nachdem Ihr Makro die entsprechende Operation durchgeführt hat, die zu einem Warnfenster führen kann. Das Einschalten erledigen Sie durch die Wertzuweisung von True.