VBA – Excel – Automatische Formelberechnung ein- und ausschalten

Bei komplexen Excel-Tabellen ist es oft nachteilig, wenn während des Schreibens von Daten in das Tabellenblatt die Datenberechnung aktiv ist. S-Verweise und andere Regeln werden mit jedem neuen Datensatz ausgeführt und verlangsamen den Generierungsprozess.

Excel bietet dafür an, die Formelberechnung einfach manuell zu deaktivieren:

Formelberechnung Ein- und Ausschalten

Um die Berechnung vor der automatischen Tabellenbefüllung mit VBA Ein- und Auszuschalten, gibt es ein einfaches Kommando in VBA:

' Einschalten der Formelberechnung

 Application.Calculation = xlCalculationAutomatic 

' Ausschalten der Formelberechnung

 Application.Calculation = xlCalculationManual 

5 Antworten auf „VBA – Excel – Automatische Formelberechnung ein- und ausschalten“

  1. Und was, wenn das
    Application.Calculation = xlCalculationManual
    sich nicht auswirkt?
    Bei mir zerhaut Excel alle Zellformeln, wenn ich auf xlCalculationManual geschaltet habe und das Arbeitsblatt der Daten ablösche. Als nächstes sollten da neue Daten geladen werden und danach die Zellformeln das mit
    xlCalculationAutomatic
    neu auswerten.

  2. Wenn Du die Daten löschst, auf die sich die Formeln beziehen, dann fehlt den Formeln der Bezug. Das Beste wäre, Du würdest mit dem Power-Query-Editor eine feste Datenquelle wählen und diese dann als Bezugspunkt für Deine Formeln nehmen. Wenn Du die Daten in einer separaten Tabelle hast und diese vom Power-Query-Editor geladen wird, kannst Du bei Daten -> Aktualisieren immer die aktualisierte Datei nachladen ohne dass die Formeln darunter kaputt gehen.

  3. Problem gelöst:
    Das Problem entstand hier:
    ActiveSheet.Cells.Delete ‘ do NOT do this!
    Wenn die Zellen, die anderswo in Zellformeln verwendet werden gelöscht werden, kann Excel diese Zellformeln nicht mehr “berechnen”. (Auch wenn die automatische Berechnung zu dem Zeitpunkt mit Application.Calculation = xlCalculationManual aus geschalten ist.
    Was funktioniert ist das hier:
    Cells.Select
    Selection.ClearContents
    Damit werden die Inhalte der Zellen gelöscht. Die Zellformeln haben weiterhin einen korrekten Bezug. Jetzt können die Zellen mit neuen Werten befüllt werden. Bei Application.Calculation = xlCalculationAutomatic berechnen die Zellformeln dann mit den neuen Werten.
    Danke für den Hinweis.

  4. Ich habe einen Effekt, den ich mir nicht erklären kann.
    Mittels VBA trage ich in eine Zelle nachfolgende Formel ein:
    = WENN(TEXT(N4; “T”) = “1”; TEXT(N4; “MMM”); “”)
    Damit möchte ich in der Zelle N3 das Monatskürzel mit 3 Buchstaben eintragen lassen, wenn das Datum in Zelle N4 den Ersten eines Monats beinhaltet, nichts dagegen an allen anderen Tagen.
    Unabhängig davon, ob ich die automatische Zellenberechnung aktiviert oder deaktiviert habe, erscheint in der Zelle N3 anstelle der erwarteten Formel die Meldung #NAME?, obwohl die Formel korrekt ist.
    Sobald ich in der Zelle jedoch den Cursor ans Ende der Formel setze und die Eingabetaste betätige, erscheint das korrekte Ergebnis der Formel.
    Wie lässt sich dieses Verhalten erklären oder – noch besser – lösen?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte lösen Sie die folgende Rechenaufgabe, um zu zeigen, dass Sie kein Bot sind. Danke! * Time limit is exhausted. Please reload CAPTCHA.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.