Wie kann ich erreichen, daÃ? ein Makro nicht alle einzelnen Schritte anzeigt?
Dazu kann die Bildschirmaktualisierung (das ScreenUpdating) ausgeschaltet werden:
Application.ScreenUpdating = False
Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True
Das Ausschalten der Bildschirmaktualisierung hat auch immer ein paar Risiken, denn das Excelfenster ist ja dann â??eingefrorenâ??. Kommt es zu einem Fehler durch den Code, bleibt das Fenster auch eingefroren - der Anwender sieht dann schlicht keine Veränderungen mehr. Deshalb ist empfehlenswert, durch objektorientiertes Arbeiten (also Elemente direkt ansprechen, Verzicht auf .Select und .Activate) dafür zu sorgen, dass der Bildschirm nicht zappelt.
Soll die Aktualisierung trotzdem ausgeschaltet werden (weil vielleicht die Laufzeit kürzer wird), sollten Fehler abgefangen und per Sprungmarke am Ende des Codes die Bildschirmaktualisierung wieder eingeschaltet werden. Im einfachsten Fall wäre das so möglich:
On Error GoTo FEHLER â?¦ Code â?¦ FEHLER: Application.ScreenUpdating = True
Günstig ist auch, am Anfang den Status der Eigenschaft abzufragen und sie am Ende wieder so zu setzen, wie sie am Anfang war:
Sub MeinMakro() Dim bolAktScrUpd As Boolean bolAktScrUpd = Application.ScreenUpdating â?¦ Code â?¦ Application.ScreenUpdating = bolAktScrUpd End Sub