Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1808to1812
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen verbergen ohne Neukalkulation

Zeilen verbergen ohne Neukalkulation
28.01.2021 10:33:30
Joe
Hallo zusammen,
Wenn ich in einem Tabllenblatt Zeilen ausblende (hidden Eigenschaft), löst das eine Neuberechnung in den ausgeblendeten Zeilen aus. Beim Einblenden ebenfalls. Durch das Ein/Ausblenden verändert sich nur die Ansicht, aber keine Werte. Es müsste also nichts neu berechnet werden. Meist stört das nicht wirklich, aber in meinem Fall enthalten die Zeilen benutzerdefinierte Funktionen (UDF), die einige Zeit brauchen. Die unnötige Neuberechnung vieler Zeilen führt dann zu Performance-Problemen.
Natürlich lässt sich die Neuberechnung mit "Application.Calculation = xlManual" oder "ActiveSheet.EnableCalculation = False" abschalten. Sobald man sie wieder einschaltet, wird die Neuberechnung für die ausgeblendeten Zellen nachgeholt. Das passiert sogar, wenn die Zeilen während der Abschalt-Phase ein- und ausgeblendet wurden, also sich beim Einschalten weder die Werte noch die Ansicht verändert haben.
Lassen sich Zeilen ein bzw. ausblenden, ohne dass dies für diese Zeilen weder eine sofortige noch nachträgliche Neuberechnung auslöst, wenn sich keine Werte geändert haben?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schuld sind deine UDF's! (owT)
28.01.2021 10:43:18
EtoPHG

Das ist 1 Xl-Feature! Folgl bleibt d.Performance …
28.01.2021 17:30:53
Luc:-?
…(vgl Eto!) und das könnte/sollte mit den UDFs zusammenhängen, Joe,
zB, falls sie volatile sind, aber auch anderenfalls, denn ggf wird die VBA-Schnittstelle dadurch ebenfalls erneut aktiviert. Bleibt, nach Gründen für die schlechtere Performance in den UDFs bzw ihrem Zusammenwirken (auch mit Xl-Fktt) in Fmln zu suchen.
Übrigens, UDF-Volatilität kann man auch von Bedingungen abhängig machen.
Gruß, Luc :-?
AW: Zeilen verbergen ohne Neukalkulation
28.01.2021 18:28:38
Daniel
HI
da es Funktionen gibt, die Ein- oder Ausgeblendet in ihrem Ergebnis berücksichtigen (Aggregat, Teilergebnis) muss Excel beim ändern dieser Eigenschaft eine Neuberechnung anstoßen.
Gruß Daniel
Anzeige
AW: Zeilen verbergen ohne Neukalkulation
29.01.2021 09:43:29
Joe
Danke für Eure Antworten, das hat mir weitergeholfen.
Die UDFs greifen auf eine Klasse zu, die ein zentraler Excel-Server zur Verfügung stellt, in Java-Umgebung würde man das Remote Object nennen. Das ist gut performant, solange nicht 95% der Zugriffe überflüssig sind, weil die UDF unnötig getriggert werden und mehrfach zugreifen.
Mit der Applications.Volatil-Methode lässt sich das etwas kontrollieren (Danke für den Hinweis), allerdings nicht final lösen. Es bleiben genug andere Trigger, wie auch Luc sagt, die eine Neuberechnung auslösen. Die Neuberechnung beim Aus- und Einblenden erfolgt immer, auch bei unveränderten Werten, selbst wenn Volatil auf false gesetzt ist. Aus der Antwort von Daniel entnehme ich, dass das so designed ist. Gegen das Design anzuprogrammieren, ist sicher kein guter Weg.
Ich habe eine Lösung im Rahmen der Standard Funktionalität gefunden. Ich schalte für die Arbeitsmappe die automatische Berechnung ab (Worksheets("Sheet1").EnableCalculation = False) ab. Mit dem Change-Event erkenne ich Benutzereingaben. Wenn diese eine Neuberechnung erfordern, löse ich die mit range.calculate aus, und zwar nur in den tatsächlich relevanten ranges. Beim einfachen Ein- und Ausblenden wird zum Beispiel keine Neuberechnung ausgelöst. Da die Struktur des Worksheets fest vorgegeben und sehr konsistent ist und auch keine Aggregat oder Teileregebisse verwendet werden, lässt sich das hier einfach und transparent umsetzen.
Forums-Leser, die sich mit der Steuerung der automatischen Berechnung beschäftigen wollen (oder müssen), finden übrigens hier eine guten Artikel dazu von Microsoft: https://docs.microsoft.com/de-de/office/client-developer/excel/excel-recalculation . Speziell über volatile Funktionen gibt es hier eine lohnende Beschreibung: http://www.decisionmodels.com/calcsecretsi.htm .
Gruß Joe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige