Clever-Excel-Forum

Normale Version: Feststellen, wodurch Berechnung ausgelöst wurde
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Servus Community,

ich suche Hilfe/ Denkanstöße zu folgender Frage:

Kann ich (gerne mit VBA) feststellen, wodurch konkret die laufende Berechnung ausgelöst wurde?

Hintergrund:
Ich habe eine recht komplexe Exceldatei mit bedingten Formaten und UDFs usw.,
bei der ich festgestellt habe, dass bei einer Neuberechnung 11 x berechnet wird. Das möchte ich nach Möglichkeit verbessern. Dazu wäre es hilfreich zu wissen,
wodurch die Berechnungen ausgelöst sind, also z.B. "Berechnungsschleife 7 wird durch Aktualisierungsschritt -Bedingte Formate prüfen- ausgelöst".
Gibt es eine Methode, sowas herauszufinden?

Danke schon mal für die Unterstützung
Gruß Ludwig
Hi Ludwig,

mit was alles eine Berechnung in deiner Datei ausgelöst wird, kann ich von hier aus mangels Kenntnis derselben nicht sagen. Aber bereits eines solltest du wissen:
Zitat:also z.B. "Berechnungsschleife 7 wird durch Aktualisierungsschritt -Bedingte Formate prüfen- ausgelöst".

Genau solche volatilen Geschichten wie etwa eine bedingte Formatierung sind Urheber von Neuberechnungen. Dazu empfehle ich dir, unbedingt diese Seite https://www.online-excel.de/excel/singsel.php?f=171 und die folgenden (Links auf der ersten Seite) zu lesen.
Hallo,

entweder mit einer Kristallkugel, oder du zeigst mal deine Datei.
Moin Ludwig

In den ProPlus-Versionen gibt es das Add-In Inquire.
Und dann gibt es noch Tools von Dritt-Anbietern, z.B. FastExcel.

Ob die Tools außer Spreadsheet-Formeln auch bedFormat-Formeln und UDFs analysieren können ist mir nicht bekannt.

Und ansonsten sollte man Best Practices berücksichtigen (eine Auswahl):
https://www.icaew.com/technical/technolo...principles
https://bkankuzi.blogspot.com/2015/09/do...dd-on.html
https://www.uef.fi/en/-/28-8-virheita-ta...ekotapoja-
https://www.ozgrid.com/forum/forum/help-...l?t=177019
https://www.ozgrid.com/Excel/ExcelSpreadsheetDesign.htm
http://www.exceluser.com/reports/seven-w...alyses.htm
https://docs.microsoft.com/de-de/office/...structions
https://www.notjustnumbers.co.uk/2013/05...excel.html
Servus nochmals,
zunächst mal Danke allen, die geantwortet haben; ich bin mittlerweile etwas schlauer geworden:
@ WillWissen,
ich bin deiner Literaturempfehlung gefolgt und habe einiges über
volatile Geschichten gelernt. Daraufhin hab ich mal alles dahingehend verdächtige rausgeschmissen - das war's allerdings nicht.
@ Klaus-Dieter,
ich bin deinem Angebot, eine hochgeladene Datei zu besichtigen, bewusst nicht gefolgt, weil meine Frage in Richtungen einer grundsätzlichen Methodik gemeint war und ich vermeiden wollte, dass
Community-Mitglieder versuchen, sich in mein "Monster" hineinzudenken;
ein andermal werde ich gerne wieder mit einer Bespieldatei von deinem Erfahrungsschatz profitieren.
(Puuh, ich hab den halben Nachmittag überlegt, wie man als Fragesteller ein solches Hilfsangebot ablehnt, ohne dass es blöd rüberkommt - ich hoffe, nicht totalen Schiffbruch damit erlitten zu haben)
@ shift-del,
ich habe mir mal angesehen, was es mit dem Add-In Inquire auf sich hat, die "Anzeige von Zellbeziehungen" ist für mein Anliegen nützlich, mir aber als Nutzer von nur Office 2016 aber nicht zugänglich; dennoch vielen Dank, wenn meine Zeit reif ist für eine ProPlus-Version, wird es mir ein willkommenes Werkzeug sein.
@alle,
eure Beiträge haben mich zum nachdenken und ausprobieren animiert und ich hab nach und nach alles Verdächtige aus meiner Datei entfernt;
Ergebnis: Meine 11 Berechnungsschleifen kommen davon, dass ich Daten auf andere Tabellenblätter "verformele"; ab dem Versuchsstadium, formelverbundene Tabellenblätter rauszulöschen, war dann "jeder Schuss ein Treffer"
Erkenntnis:
Wenn Eingabezellen auf andere Tabellenblätter wirken, so wird je betroffenem Tabellenblatt eine Rechenschleife initiiert.

Danke für eure Unterstützung auf dem Weg dahin.

Schönen Abend und Gruß Ludwig
Hallo Ludwig,

es ist schön, ein Feedback in dieser Qualität zu lesen - detailliert und alle angesprochen. Das geschieht leider viel zu selten. Vielen Dank dafür.
Hallo zusammen,

Nachtrag:
ich hab noch etwas weiter recherchiert und gelernt, dass
man die Eigenschaft  EnableCalcualation eines Tabellenblattes auf FALSE setzen kann,
sprich: die Berechnungsschleifen durch Unterdrücken der Neuberechnung dieser Tabellenblätter reduzieren kann:
[attachment=25242]
Da es sich in meinem Fall nur um "von einem Zentralblatt ergebnisempfangende Blätter" handelt, scheint mir das eine sinnvolle Lösung zu werden.
Siehe dazu auch
http://www.office-loesung.de/ftopic639695_0_0_asc.php
(Beitrag von Isabelle)
Schönen Abend noch und Gruß Ludwig
Hallöchen,

mal noch zwei Hinweise.
- EnableCalcualation ist keine speicherbare Eigenschaft
- bei Eintrag einer Formel, die auf eine andere Mappe zugreift, wird auch geprüft, ob es diese gibt
(wäre ansonsten eine feine Möglichkeit, Formeln mit Zugriff auf noch nicht vorhandene Mappen vorzubereiten)