Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Application.CalculateFull ?

Forumthread: Application.CalculateFull ?

Application.CalculateFull ?
03.11.2013 17:46:57
KlausF
Hallo Forum,
habe hier etwas gefunden, dass ich bisher noch gar nicht kannte:
http://www.vba-blog.de/?q=node
Hat jemand Erfahrung damit?
Mir ist jedenfalls noch nie aufgefallen, dass das normale
Application.Calculate zu einem falschen Ergebnis geführt hätte ...
Gruß
Klaus

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Calculate oder CalculateFull
03.11.2013 18:28:57
Matthias
Hallo
Mir ist jedenfalls noch nie aufgefallen, dass das normale
Application.Calculate zu einem falschen Ergebnis geführt hätte ...

Mir auch nicht, warum auch?
Der Unterschied lt. Hilfe ist doch nur der, das Du bei Calculate auch einzelne Tabellen oder Bereiche neu berechnen lassen kannst.
Wobei das blanke
Application.CalculateFull das gleiche bewirkt wie
Application.Calculate
Das Berechnen aller geöffneten Mappen.
So hab ich jedenfalls das in der Hilfe gelesene verstanden.
Gruß Matthias

Anzeige
AW: Calculate oder CalculateFull
03.11.2013 18:51:25
KlausF
Hallo Matthias,
danke für Deine Einschätzung. So hätte ich das auch verstanden.
Ich störe mich ein wenig an diesem Satz:
Allerdings wartet VBA nicht bis die Arbeitsmappe vollständig neu berechnet wurde
Und das war meine Frage. Denn demnach würde es ja doch einen Unterschied
zu Application.Calculate geben ... ?
Gruß
Klaus

Anzeige
Danke!
03.11.2013 20:19:22
KlausF
Hallo Erich,
es gibt doch immer wieder etwas Neues, selbst bei den Dingen,
die man schon zigmal geschrieben hat ... ohne Nachzudenken.
Danke für den Link
Klaus

Danke, habs gelesen ... owT
04.11.2013 17:07:15
Matthias
;
Anzeige

Infobox / Tutorial

Anwendung von Application.CalculateFull in VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > Einfügen > Modul.

  3. In das Modul kannst Du den folgenden Code eingeben, um Application.CalculateFull zu verwenden:

    Sub BerechneAlles()
       Application.CalculateFull
    End Sub
  4. Führe das Makro aus: Drücke F5 oder wähle "Ausführen" im Menü.

  5. Beobachte die Berechnung aller geöffneten Arbeitsmappen.

Mit Application.Calculate kannst Du hingegen spezifische Tabellenblätter oder Bereiche berechnen. Wenn Du also nur eine bestimmte Tabelle neu berechnen möchtest, verwende diese Methode:

Sub BerechneTabelle()
    Worksheets("Tabelle1").Calculate
End Sub

Häufige Fehler und Lösungen

  • Fehler: "Runtime Error 1004"
    Lösung: Stelle sicher, dass das Arbeitsblatt, das Du berechnen möchtest, tatsächlich existiert und korrekt benannt ist.

  • Problem: Anwendung berechnet nicht alle Zellen
    Lösung: Überprüfe, ob die Berechnungsoptionen auf "Automatisch" gesetzt sind. Gehe zu Formeln > Berechnungsoptionen > Automatisch.


Alternative Methoden

Neben Application.Calculate und Application.CalculateFull gibt es auch die Methode Application.CalculateFullRebuild, die eine vollständige Neuberechnung aller Zellen und das Rebuilden der Berechnungsstruktur durchführt. Dies kann hilfreich sein, wenn Du auf unerwartete Berechnungsergebnisse stößt.

Sub VollständigeNeuberechnung()
    Application.CalculateFullRebuild
End Sub

Praktische Beispiele

  1. Berechnung aller geöffneten Arbeitsmappen:
    Verwende Application.CalculateFull, um sicherzustellen, dass alle offenen Arbeitsmappen synchronisiert sind.

  2. Einzelne Berechnung eines Bereichs:
    Wenn Du nur einen bestimmten Bereich in einem Arbeitsblatt berechnen möchtest, nutze:

    Sub BerechneBereich()
       Range("A1:A10").Calculate
    End Sub
  3. Testen von Berechnungen:
    Teste verschiedene Methoden, um die Unterschiede zwischen Application.Calculate und Application.CalculateFull zu verstehen.


Tipps für Profis

  • Automatisierung: Integriere Application.Calculate oder Application.CalculateFull in Ereignisprozeduren, um Berechnungen bei Änderungen automatisch auszuführen.

  • Performance-Optimierung: Wenn Du mit großen Datenmengen arbeitest, kann es sinnvoll sein, Berechnungseinstellungen vorübergehend auf "Manuell" zu setzen, um die Leistung zu steigern.

  • Debugging: Verwende die Debug.Print-Anweisung, um den Fortschritt der Berechnung in der Konsole zu überwachen.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Application.Calculate und Application.CalculateFull?
Application.Calculate berechnet nur die Zellen, die geändert wurden, während Application.CalculateFull alle Zellen in allen geöffneten Arbeitsmappen neu berechnet.

2. Wann sollte ich Application.CalculateFull verwenden?
Nutze Application.CalculateFull, wenn Du sicherstellen möchtest, dass alle Arbeitsmappen und Zellen vollständig aktualisiert werden, insbesondere nach umfangreichen Änderungen.

3. Gibt es Performance-Unterschiede zwischen den Methoden?
Ja, Application.CalculateFull kann zeitaufwändiger sein, da es alle Zellen neu berechnet. Daher ist es ratsam, die Methode je nach Bedarf sorgfältig auszuwählen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige