Mit Excel können Sie steuern, wann ein Arbeitsblatt neu berechnet wird. Normalerweise berechnet Excel jedes Mal neu, wenn Sie etwas in einer Zelle ändern. Wenn Sie mit sehr großen Arbeitsblättern arbeiten, die viele Formeln enthalten, möchten Sie möglicherweise die automatische Neuberechnung deaktivieren. Sie können die automatische Neuberechnung mithilfe von Steuerelementen auf der Registerkarte Berechnung des Dialogfelds Optionen deaktivieren.

Ihre Makros können Excel auch dazu zwingen, Ihr Arbeitsblatt neu zu berechnen. Wenn Sie die automatische Neuberechnung aktiviert haben, zwingt jede Änderung, die Ihr Makro in einem Arbeitsblatt vornimmt, Excel zur Neuberechnung. Wenn Sie die automatische Neuberechnung deaktiviert haben, können Sie mit der Berechnungsmethode ein Arbeitsblatt neu berechnen:

ActiveSheet.Calculate

Wenn die Neuberechnung einige Zeit in Anspruch nimmt, sollten Sie natürlich überprüfen, ob eine Neuberechnung erforderlich ist, bevor Sie tatsächlich eine erzwingen. Es scheint, dass es kein Flag gibt, das Sie direkt überprüfen können, um festzustellen, ob eine Neuberechnung erforderlich ist. Am nächsten überprüfen Sie die gespeicherte Eigenschaft des Arbeitsmappenobjekts. Diese Eigenschaft fungiert im Wesentlichen als „Dirty Flag“ für die gesamte Arbeitsmappe. Wenn eine Arbeitsmappe nicht gespeicherte Änderungen enthält, ist die Eigenschaft Gespeichert False. Wenn alles gespeichert ist, ist es wahr.

Wie können Sie herausfinden, ob eine Neuberechnung erforderlich ist?

Denken Sie daran, dass die Berechnung nur erforderlich ist, wenn sich Änderungen in einem Arbeitsblatt ergeben. Wenn Sie etwas in einem Arbeitsblatt ändern, wird auch die Eigenschaft „Gespeichert“ der Arbeitsmappe auf „Falsch“ gesetzt. Daher können Sie die gespeicherte Eigenschaft vor der Neuberechnung überprüfen, wie hier gezeigt:

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate End If

Bei diesem Ansatz gibt es natürlich nur ein Problem: Die gespeicherte Eigenschaft wird nur dann auf True gesetzt, wenn die Arbeitsmappe tatsächlich gespeichert ist. Dies bedeutet, dass Sie mehrere Male neu berechnen können, ohne dies wirklich tun zu müssen, es sei denn, Sie verbinden Speichern und Neuberechnen wie hier gezeigt:

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate     ActiveWorkbook.Save End If

Die Weisheit, dieses Problem auf diese Weise anzugehen, hängt von der Art Ihrer speziellen Situation ab. Wenn das Speichern der Arbeitsmappe länger dauert als das einfache Neuberechnen, funktioniert dieser Ansatz nicht. Wenn die Neuberechnung jedoch länger dauert (was bei einigen Arten von Operationen sehr gut möglich ist), funktioniert dieser Ansatz möglicherweise gut.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2323) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: