VBA – Automatische Berechnungen ausschalten oder einschalten
In this Article
Jedes Mal, wenn Sie einen Zellenwert aktualisieren, führt Excel einen Prozess zur Neuberechnung der Arbeitsmappe durch. Wenn Sie direkt in Excel arbeiten, möchten Sie, dass dies in 99,9 % der Fälle geschieht (die Ausnahme ist, wenn Sie mit einer extrem großen Arbeitsmappe arbeiten). Dies kann jedoch Ihren VBA-Code stark verlangsamen. Es empfiehlt sich, die Berechnungen zu Beginn von Makros auf manuell einzustellen und die Berechnungen am Ende von Makros wiederherzustellen. Wenn Sie die Arbeitsmappe neu berechnen müssen, können Sie Excel manuell anweisen, die Berechnung durchzuführen.
Automatische Berechnungen ausschalten
Sie können die automatische Berechnung mit einem Makro ausschalten, indem Sie sie auf xlManual setzen. Verwenden Sie den folgenden VBA-Code:
Application.Calculation = xlManual
Automatische Berechnungen wieder einschalten
So schalten Sie die automatische Berechnung mit der Einstellung xlAutomatic wieder ein:
Application.Calculation = xlAutomatic
Ich empfehle, die automatischen Berechnungen ganz am Anfang Ihrer Prozedur zu deaktivieren und am Ende wieder zu aktivieren. Es sieht dann so aus:
Deaktivieren der automatischen Berechnungen – Makrobeispiel
Sub Auto_Berechnung_Beispiel()
Application.Calculation = xlManual
'Etwas tun
Application.Calculation = xlAutomatic
End Sub
Manuelle Berechnungen
Wenn automatische Berechnungen deaktiviert sind, können Sie den Befehl Calculate verwenden, um Excel zu einer Neuberechnung zu zwingen:
Calculate
Sie können Excel auch anweisen, nur ein einzelnes Arbeitsblatt neu zu berechnen:
Worksheets("Tabelle1").Calculate
Sie können auch VBA anweisen, nur einen Bereich neu zu berechnen (klicken Sie, um unseren Artikel über VBA-Berechnungsmethoden zu lesen)
So könnte dies in einem Makro aussehen:
Sub Auto_Berechnung_Beispiel_Manuell()
Application.Calculation = xlManuell
'Etwas tun
'Neu berechnen
Calculate
' Mehr Sachen tun
Application.Calculation = xlAutomatic
End Sub
VBA-Einstellungen – Beschleunigung des Codes
Wenn es Ihr Ziel ist, Ihren Code zu beschleunigen, sollten Sie auch diese weitern Einstellungen anpassen: Die Deaktivierung der Bildschirmaktualisierung kann einen enormen Geschwindigkeitsunterschied bewirken:
Application.ScreenUpdating = False
Auch die Deaktivierung der Statusleiste kann einen kleinen Unterschied ausmachen:
Application.DisplayStatusBar = False
Wenn Ihre Arbeitsmappe Ereignisse enthält, sollten Sie auch die Ereignisse zu Beginn Ihrer Prozeduren deaktivieren (um den Code zu beschleunigen und Endlosschleifen zu vermeiden!):
Application.EnableEvents = False
Schließlich kann Ihr VBA-Code verlangsamt werden, wenn Excel versucht, die Seitenumbrüche neu zu berechnen (Hinweis: nicht alle Prozeduren sind davon betroffen). Um DisplayPageBreaks zu deaktivieren, verwenden Sie diese Codezeile:
ActiveSheet.DisplayPageBreaks = False
VBA-Programmierung leicht gemacht
Suchen Sie nicht länger online nach VBA-Code. Erfahren Sie mehr über AutoMacro – einen VBA Code Builder, der es Anfängern ermöglicht, Prozeduren von Grund auf mit minimalen Programmierkenntnissen und mit vielen zeitsparenden Funktionen für alle Benutzer zu programmieren!
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!