VBA – Automatische Berechnungen ausschalten oder einschalten

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on Februar 2, 2022

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

vba automatische berechnungen ausschalten

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!

automacro uebersicht for each ws in worksheets

 

Mehr erfahren!

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! vba save as


Learn More!
vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples