Werden durch einen Code innerhalb einer Datei die bereits viele Formeln enthält, Zellen gelöscht oder Werte eingefügt, so kann die Laufzeit relativ lange sein, da Excel ständig eine Neuberechnung anstößt. Um die Neuberechnung oder das Starten von Ereignisprozeduren zu verhindern, können folgende Codezeilen innerhalb der Prozedur implementiert werden.
Eine Fehlerbehandlungsroutine sollte aber in diesem Fall nicht fehlen, damit sichergestellt ist, dass alle Funktionen wieder eingeschaltet werden.
Nachfolgend ein Beispielcode:
Public Sub Beispielprozedur()
On Error GoTo Fehlerbehandlung ' <-- Wichtig, damit bei einem Fehler alles wieder eingeschaltet wird
'Funktionen ausschalten
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
'#####################################
'Der eigentliche Code kommt zwischen die Zeilen
'#####################################
'Funktionen einschalten
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
Exit Sub '<-- Prozedur beenden, wenn fehlerfrei durchgelaufen
Fehlerbehandlung:
'Funktionen einschalten
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Anmerkung:
.ScreenUpdating = Bildschirmaktualisierung
.EnableEvents = Ereignisprozeduren
.Calculation = Berechnungen