Clever-Excel-Forum

Normale Version: Automatische Berechnung von bestimmten Tabellenblatt aktivieren bzw. deaktivieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Wie kann ich die automatische Berechnung mittels VBA von einem bestimmten Tabellenblatt deaktivieren bzw. dann auch wieder aktivieren?

LG
Thomas
Das geht nicht! Die Berechnung lässt sich nur insgesamt (für die komplette Applikation) aus- oder einschalten.
Ginge schon! Wink
Im Workbook_Activate Application.Calculation ausschalten.
Im _Deactivate vice versa.

ABER, und da gebe ich Helmut natürlich Recht:
Wenn Berechnungen im Hintergrund (bei Aktivierung des "falschen" Blatts) auf dem "richtigen" Blatt angestoßen werden, nützt das nüscht.

Man könnte ja erst mal klären, warum Du das überhaupt willst.
Vielleicht fällt uns ja eine andere Variante ein?
Hallo,

ich schmeiß mal ..... in die Runde. Das funktioniert in einer meiner Tabellen. (recht gut)

Sheets("Tabelle(x)").EnableCalculation = True/False
Wow,

was es nicht alles gibt! Allerdings wird damit jegliche Berechnung auf dem Blatt unterdrückt. Also ist auch z.B. kein F9 möglich.
Stimmt, dem wissend, habe ich mir auf dem betroffenen Blatt dafür 2 Schalter gebastelt die farblich den Zustand vors Auge legen,
damit man sich nicht unnütz wundert. 
[attachment=47693]
Hallöchen,

man sollte dabei aber berücksichtigen, dass EnableCalculation flüchtig ist und z.B. beim Öffnen der Mappe erst berechnet und dann z.B. das Workbook_Open mit diesem Code ausgeführt wird.
Hallo!

Ich würde gerne dieses Thema nochmals aufgreifen.
Wenn ich z.B. nach Private Sub Worksheet_Change den Code 
Code:
Worksheets("Top30 - Teil 1").EnableCalculation = True

ausführe, berechnet er das Tabellenblatt auch.

Wenn aber die letzte Aktion 

Code:
Worksheets("Top30 - Teil 1").EnableCalculation = False

war und ich verlasse die ganze Excel Datei, dann merkt er sich das anscheinend. Somit ist weiterhin die Berechnung für dieses Tabellenblatt deaktiviert.

Nun habe ich mir gedacht, schalte ich die Berechnung für dieses Tabellenblatt beim Öffnen der Datei einfach über

Code:
Private Sub Workbook_Open()

Worksheets("Top30 - Teil 1").EnableCalculation = True

End Sub
 
ein, aber er macht das leider nicht. Auch wenn ich es über Schließen der Datei mache, funktioniert es nicht.

@Schauan: Ist das genau das Problem, was du gemein hast?
Wie könnte ich es trotzdem lösen oder mache ich das was falsch?
Hallöchen,

wenn Du die Berechnung beim Öffnen der Datei nicht willst, müsstest Du vor Öffnen der Datei die Berechnungsoption auf manuell stellen Sad

- Excel starten, Option Berechnung manuell
- Datei öffnen - bea. ... EnableCalculation=False ... im WorkbookOpen
- Excel Option Berechnung kann wieder auf automatisch gestellt werden