Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Application.Calculation = xlCalculationAutomatic

Forumthread: Application.Calculation = xlCalculationAutomatic

Application.Calculation = xlCalculationAutomatic
SH
Hallo,
gibt es eine Möglichkeit auf einen Blick den "Calculation"-Status einzusehen? Ohne via ribbon auf "Formeln" und "Berechnungsoptionen" zu gehen? Kann man das irgendwie in der Statuszeile oder so einblenden?
danke!
Anzeige
ja ... das kann man ...
19.10.2010 18:18:54
Matthias
Hallo
Dim startwert
startwert = Application.Calculation 'Einstellung merken
MsgBox "Startzustand=" & startwert
Application.Calculation = xlCalculationAutomatic
Application.StatusBar = Application.Calculation
MsgBox "schau in die Statusbar " & vbLf & "Dieses kann man mit z.B. der Case-Anweisung dann genau zurückgeben"
Application.Calculation = xlCalculationManual
Application.StatusBar = Application.Calculation
MsgBox "schau nochmal in die Statusbar " & vbLf & "Dieses kann man mit z.B. der Case-Anweisung dann genau zurückgeben"
Application.Calculation = xlCalculationSemiautomatic
Application.StatusBar = Application.Calculation
MsgBox "und schau ein letztes mal in die Statusbar " & vbLf & "dieses kann man mit z.B. der Case-Anweisung dann genau zurückgeben"
Application.StatusBar = ""
'zurück in den Ausgangszustand
Application.Calculation = startwert 'Einstellung zurück in de Startzustand setzen
Gruß Matthias
Anzeige
AW: ja ... das kann man ...
19.10.2010 18:25:29
SH
cool - kann der Status auch auf der Schaltfläche eines Buttons, der ein Makro startet, ausgewiesen werden?
Ja! Wenn das ein Textfeld ist, einfach mit...
19.10.2010 18:34:44
Luc:-?
…einer Zelle verlinken, in die der Zustand eingetragen wird!
Gruß Luc :-?
AW: Ja! Wenn das ein Textfeld ist, einfach mit...
19.10.2010 18:37:33
SH
mit einer Zelle verlinken? Ich kann in den Button doch nur Text reinschreiben...
Anzeige
Textfelder können auch mit Zellen...
19.10.2010 18:48:36
Luc:-?
…verlinkt wdn, man muss bei selektiertem Objekt nur =zelladresse, zB =A1, in die Bearbeitungszeile schreiben, das ist am Einfachsten. Auf Textfelder kann man näml auch Makroaufrufe legen. Benutzt du einen CommandButton ist es ein wenig komplizierter, denn du musst dann Titel austauschen…
Gruß Luc :-?
Anzeige
AW: Textfelder können auch mit Zellen...
19.10.2010 19:04:26
ing.grohn
Hallo Luc,
geht das etwas genauer?
Mit freundlichen Grüßen
Albrecht
Inwiefern, Albrecht? Das Eine ist doch...
19.10.2010 21:33:50
Luc:-?
…genau genug und das Andere wird sicher unten erläutert…
Gruß Luc :-?
AW: hier mit Button ...
19.10.2010 19:15:10
ing.grohn
Hallo Matthias,
vielen Dank
Albrecht
AW: hier mit Button ...
19.10.2010 20:05:55
ing.grohn
Hallo Matthias,
geht scheints nur wenn dort ein "Wert" steht und keine Formel?
MfG
Albrecht
was meinst Du? es war ja nur ein Bsp. kwT
19.10.2010 20:10:57
Matthias
Anzeige
AW: was meinst Du? es war ja nur ein Bsp. kwT
19.10.2010 21:34:18
ing.grohn
Hallo Matthias,
ich hatte versuch das mit einer Texttbox nachzubilden und hatte als Quelle eine Formelzelle gewählt.
=WENN(ABS(GANZZAHL(LOG(A1)))

(aus Excelformeln (nurn Zufall))
das ging nicht.
Mit einer Zelle mit einem "Wert" z.B. "Linus" hats funktioniert
MfG
Albrecht
Anzeige
;
Anzeige

Infobox / Tutorial

Anwendung von Application.Calculation in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf VBAProject (dein Arbeitsmappenname), wähle Einfügen und dann Modul.

  3. Füge den folgenden Code ein:

    Sub BerechnungStatus()
       Dim startwert As XlCalculation
       startwert = Application.Calculation 'Einstellung merken
       Application.Calculation = xlCalculationAutomatic
       Application.StatusBar = Application.Calculation
       MsgBox "Aktueller Status: " & Application.Calculation
       ' Wiederherstellen des ursprünglichen Berechnungsstatus
       Application.Calculation = startwert
       Application.StatusBar = ""
    End Sub
  4. Führe das Makro aus: Klicke auf Run oder drücke F5.

Dieser Code setzt den Berechnungsstatus auf xlCalculationAutomatic und zeigt den aktuellen Status in einer Meldung an.


Häufige Fehler und Lösungen

  • Fehler: "Anwendungsfehler, wenn der Berechnungsstatus nicht gesetzt werden kann."

    • Lösung: Überprüfe, ob du die richtige Excel-Version verwendest. Der Code sollte in Excel 2000 oder höher funktionieren.
  • Fehler: Der Status wird nicht in der Statusleiste angezeigt.

    • Lösung: Stelle sicher, dass du die Statusleiste nicht manuell zurücksetzt oder dass andere Makros nicht in Konflikt stehen.

Alternative Methoden

Eine weitere Möglichkeit, den Berechnungsstatus zu überprüfen, ist die Verwendung eines Textfeldes auf einem Arbeitsblatt:

  1. Füge ein Textfeld hinzu: Wähle Einfügen > Textfeld aus der Symbolleiste.
  2. Verlinke das Textfeld mit einer Zelle: Wähle das Textfeld aus und gib in der Bearbeitungszeile =A1 ein, um den Wert der Zelle A1 anzuzeigen.
  3. Ändere den Wert in A1: Ändere den Wert in der Zelle, um den Berechnungsstatus dynamisch anzuzeigen.

Praktische Beispiele

  • Beispiel 1: Verwende den folgenden Code, um den Berechnungsstatus in einer MsgBox anzuzeigen und gleichzeitig den Status in der Statusleiste anzuzeigen.

    Sub AnzeigeBerechnungsStatus()
       Application.Calculation = xlCalculationManual
       Application.StatusBar = "Berechnungsstatus: " & Application.Calculation
       MsgBox "Der Berechnungsstatus ist jetzt: " & Application.Calculation
    End Sub
  • Beispiel 2: Anpassen des Berechnungsstatus innerhalb eines Makros:

    Sub WechselBerechnungsmodus()
       If Application.Calculation = xlCalculationAutomatic Then
           Application.Calculation = xlCalculationManual
       Else
           Application.Calculation = xlCalculationAutomatic
       End If
       MsgBox "Neuer Berechnungsstatus: " & Application.Calculation
    End Sub

Tipps für Profis

  • Optimierung: Wenn du große Datenmengen verarbeitest, setze Application.Calculation = xlCalculationManual, um die Berechnungen zu reduzieren, und führe Application.Calculate manuell aus, wenn du bereit bist.
  • Fehlerbehandlung: Füge On Error Resume Next hinzu, um mögliche Fehler beim Ändern des Berechnungsstatus zu ignorieren.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen xlCalculationAutomatic und xlCalculationManual?
xlCalculationAutomatic führt Berechnungen automatisch durch, während xlCalculationManual die Berechnungen nur bei Bedarf durchführt.

2. Wie kann ich den aktuellen Berechnungsstatus in einer Zelle anzeigen?
Verwende ein Textfeld oder eine Zelle, die mit einem Makro verknüpft ist, um den Berechnungsstatus dynamisch anzuzeigen.

3. Kann ich den Berechnungsmodus für ein bestimmtes Arbeitsblatt festlegen?
Nein, der Berechnungsmodus ist global für die gesamte Anwendung und kann nicht auf ein einzelnes Arbeitsblatt beschränkt werden.

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