Microsoft Excel

Herbers Excel/VBA-Archiv

Berechnungsstatus visualisieren

Betrifft: Berechnungsstatus visualisieren von: Roger
Geschrieben am: 04.08.2014 12:28:47

Hallo VBA-Gemeinde

Ich arbeite öfters mit Dateien, bei denen die Berechnung auf manuell gesetzt ist oder gesetzt werden muss. Das führt zu Verwirrungen, da es nicht sofort ersichtlich ist ob die automatische Berechnung im Moment aktiviert oder deaktiviert ist.
Daher wollte ich per Makro das Farbschema (Farbe des Fensterrahmen) je nach Berechnungsmodus ändern, so dass man daran auf einfache und klare Weise erkennen kann, wie die Berechnungseinstellungen aktuell gewählt sind. Alternativ könnten auch andere Elemente farblich angepasst werden (z.B. die Statusleiste oder das Namensfeld, oder, oder, oder) wenn das einfacher zu bewerkstelligen ist.

Kann mir dabei jemand einen Tipp geben?

Danke und Gruss
Roger

  

Betrifft: Was zeigen, was schon da ist ? Für was?.... von: EtoPHG
Geschrieben am: 04.08.2014 12:45:05

Hallo Roger,

Excel-Profi?
Noch nie auf die Status-Leiste von Excel geschaut?

Gruess Hansueli


  

Betrifft: AW: und wenn nichts da ist? von: Daniel
Geschrieben am: 04.08.2014 12:55:12

Hallo HansUeli

also bei mir (ebenfalls Excel 2010) ändert sich NICHTS in der Statuszeile, wenn ich den Berechnungsmodus umschalte!
in den Statusleistenoptionen (rechte MT - Statusleiste Anpassen) sind aber alle Häkchen gesezt!
Was nun?

Gruß Daniel


  

Betrifft: AW: und wenn nichts da ist? von: Roger
Geschrieben am: 04.08.2014 13:05:46

Warum wusste ich nur, dass diese Hilfe kommt.
Doch ich weiss dass im Fall einer anstehenden Berechnung dort "Berechnen" steht, aber das ist mir zu unauffällig. Schliesslich schaue ich nicht ständig in die Statusleiste.

Nichts für ungut Hansueli, andere Vorschläge?


  

Betrifft: AW: und wenn nichts da ist? von: Oberschlumpf
Geschrieben am: 04.08.2014 13:27:39

...Warum wusste ich nur, dass diese Hilfe kommt....

Alter, nun beschwer dich auch noch!

an der Stelle, wo du die autom. Berechn. ein/ausschaltest, färbe eine unbenutzte Zelle ein

Range("A1").Interior.ColorIndex = 3 'das is rot

Hilfts?


  

Betrifft: AW: und wenn nichts da ist? von: Daniel
Geschrieben am: 04.08.2014 13:28:56

Die Automatsiche Berechnung schaltet man aber über die Menüfunktion ein- und aus.
wie willst du da noch eigenen Makrocode ausführen?

gruß Daniel


  

Betrifft: AW: und wenn nichts da ist? von: Oberschlumpf
Geschrieben am: 04.08.2014 13:32:11

Hi Daniel

mit VBA kann man das nicht ein/ausschalten?!

Ciao
Thorsten


  

Betrifft: AW: und wenn nichts da ist? von: Daniel
Geschrieben am: 04.08.2014 13:40:44

kann man sicherlich.
Aber warum sollte man das tun, wenns dafür schon einen Menübefehl gibt, die der Anwender nutzen kann und ggf auch nutzen wird.
Fatal wäre, wenn die Anzeige und tatsächlicher Zustand nicht nicht übereinstimmen, weil der Anwender statt dem VBA-Button die Menüfunktion benutzt hat.

Gruß Daniel


  

Betrifft: AW: und wenn nichts da ist? von: Roger
Geschrieben am: 04.08.2014 13:47:54

Sub Autoberechnung()

If Application.Calculation = xlCalculationAutomatic Then
Application.Calculation = xlCalculationManual
Else
Application.Calculation = xlCalculationAutomatic

End If


  

Betrifft: AW: und wenn nichts da ist? von: Roger
Geschrieben am: 04.08.2014 13:41:15

Ey, Alter. Cool bleiben. :-)
Wollte mich nicht beschweren. Ich war der Annahme unterlegen, dass mit meiner Ausführung klar war, dass ich eine "höherwertige" Lösung suche.
Einfach eine Zelle einfärben ist für mich nicht zielführend, da an der Arbeitsmappe selbst nichts verändert werden soll und der Berechnungmodus nicht an der Datei hängt sondern global für alle geöffneten Arbeitsmappen gilt.

Daher brauche ich eine Lösung auf Programmbasis und nicht auf Arbeitsmappenbasis.


  

Betrifft: AW: und wenn nichts da ist? von: Daniel
Geschrieben am: 04.08.2014 13:50:12

Hi

das problem ist, dass du ausser den Zellen ohne grösseren Aufwand nichts umfärben kannst.
die Farben der Fenster sind über das Farbschema fest vorgegeben und darauf kannst du über VBA nicht so ohne weiteres zugreifen.

des weiteren ist es so, das makros immer an eine Arbeitsmappe gebunden sind.
dh was immer du auch programmierst, es funktioniert immer nur im Zusammenspiel mit der Mappe, in welcher der Code steht.

ich würde hier folgenden Code im Modul "Diese Arbeitsmappe" verwenden:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
With ActiveWindow
Select Case Application.Calculation
    Case XlCalculation.xlCalculationAutomatic
        .Caption = Split(.Caption, " | ")(0) & " | Berechnung Automatsich"
        .GridlineColor = 0
    Case Else
        .Caption = Split(.Caption, " | ")(0) & " | Berechnung Manuell"
        .GridlineColor = vbRed
End Select
End With
End Sub
der Code ändert die Fensterüberschrift und die Farbe des Hilfsgitters, je nach dem welcher Berechnungsmodus aktiv ist.
Die Prüfung erfolgt immer, wenn du den Cursor in einem Blatt der Datei auf eine andere Zelle verschiebst (das ist wohl das am häufigsten auftretende Event).
Gruß Daniel


  

Betrifft: AW: und wenn nichts da ist? von: Roger
Geschrieben am: 04.08.2014 14:07:07

Das ist doch ein schöner Ansatz. Danke dafür. Jetzt muss ich mir nur noch überlegen wie ich diesen "globalisieren" kann.
Ich denke daran, dass Makro in die Personl.xlsb zu schmeissen und über eine Prüfung des Berechnungsmodus die entsprechenden Einstellungen für jede Mappe vorzunehmen.

Wer noch eine nette Idee hat um das Layout von Excel abhänig vom Berechungsmodus darzustellen ist gern eingeladen dies hier zu schreiben.


  

Betrifft: Eine Lösung ohne VBA.... von: EtoPHG
Geschrieben am: 04.08.2014 16:47:40

Hallo Roger (nochmal ;-),

Um den Berechnungsstatus gem. deinem Zitat
Das führt zu Verwirrungen, da es nicht sofort ersichtlich ist ob die automatische Berechnung im Moment aktiviert oder deaktiviert ist.
etwas prominenter darzustellen und Dir auch noch schneller und gratis das Umstellen zu erleichtern:
1. Symbolleister für den Schnellzugriff in XL anpassen...
2. Befehle auswählen: Alle Befehle
3. [√] Automatisch (hinzufügen)
4. [√] Manuell (hinzufügen)

Damit wird der aktuelle Status angezeigt. Wird z.B. eine Mappe mit manueller Berechnung geöffnet, wechselt das Häkchen von Automatisch zu Manuell. Die Checkboxen funktionieren also wie die Berechnugsoptionen in XL. Ein Blick auf die Status-Leiste bei Manuell kann dann auch nicht schaden oder ist zuviel das zuviel verlangt? IMHO verwirrt Daniels Lösung mehr, als dass sie nützt.

Gruess Hansueli


  

Betrifft: AW: Eine Lösung ohne VBA.... von: Daniel
Geschrieben am: 04.08.2014 17:43:10

Dann hätte man auch gleich die Buttons zum Umschalten direkt im Blick und muss sich nicht durch die Menüs klicken.
Gute Lösung.


  

Betrifft: AW: Eine Lösung ohne VBA.... von: Roger
Geschrieben am: 05.08.2014 16:09:51

Danke für den Lösungsvorschlag. Meinem persönlichem Empfinden nach gefällt mir die offensichtlichere Lösung von Daniel besser. Die Symbole liegen nicht so im Blickfeld bei der Zellbearbeitung und fallen somit nicht ausreichend auf. Denke aber für andere Anwender ist dein Tipp sehr interessant.

Gruß
Roger