Hallo,
ich habe folgendes Problem:
Ich habe eine Datenbank mit mehreren Sheets. In jedem dieser Sheets, die ich über ein Userformauswahlmenue sichtbar mache, sind Daten hinterlegt.
Über diesen liegt ein Autofilter und ich habe noch dadrüber einen Button eingerichtet, der automatisch die Datenmaske öffnet, so dass man darüber Daten eintragen kann.
Das Problem ist nun, dass sobald ich auf den Knopf mit der Datenmaske klicke, Excel mir unten links anzeigt, dass zellen Berechnet werden. dann dauert das so 3 sekunden bis das auf 100% geht und die datenmaske erscheint.
Das war früher nicht so. Wodran kann sowas liegen? Warum rechnet der so viel?
In der Datenbank sind meistens nur wenige daten. Maximal 40, manchmal aber auch nur 3 in einem sheet. Trotzdem rechnet der ziemlich lange
Gruß,
Arthur
Ok, ich habe herausgefunden woran es liegt:
Ich habe in einem Sheet so eine Matrixformel, die immer lange rechnet obwohl das sheet nicht sichtbar ist und ich da nichts ändere.
Kann man das irgendwie einstellen, dass die Matrixformel, die sich in einem bestimmt Sheet über 500 Zeilen erstreckt nur in bestimmten Momenten neu berechnet wird.
Eigentlich ändert sich deren ergebnis gar nicht, wenn ich die Daten in einem anderen Sheet verändere.
Grüezi Arthur
Ich habe in einem Sheet so eine Matrixformel, die immer lange
rechnet obwohl das sheet nicht sichtbar ist und ich da nichts
ändere.
Das spielt soweit keine Rolle - wenn es Formeln auf ds aktuelle Blatt gibt wird die Neuberechnung angestossen.
Auch wenn sich der Bereich der Matrixformel auf einen Bereich mit dem Autofilter bezieht wird bei dessen Verwendung neu berechnet.
Kann man das irgendwie einstellen, dass die Matrixformel, die
sich in einem bestimmt Sheet über 500 Zeilen erstreckt nur in
bestimmten Momenten neu berechnet wird.
Eigentlich ändert sich deren ergebnis gar nicht, wenn ich die
Daten in einem anderen Sheet verändere.
‚Eigentlich‘ ist hier wohl das Stichwort - was genau passiert denn?
–
Mit freundlichen Grüssen
Thomas Ramel
Hi Arthur,
Kann man das irgendwie einstellen, dass die Matrixformel, die
sich in einem bestimmt Sheet über 500 Zeilen erstreckt nur in
bestimmten Momenten neu berechnet wird.
wie meinst du das mit dem „über 500 Zeilen erstreckt“ ?
Eigentlich ändert sich deren ergebnis gar nicht, wenn ich die
Daten in einem anderen Sheet verändere.
Du kannst ja mit
Application.Calculation = xlCalculationManual
bzw.
Application.Calculation = xlCalculationAutomatic
die automatische Berechnung ab- und Anschalten.
Dann kannst du gezielt nur bestimmte Blätter berechnen lassen mit
Worksheets(„Tabelle1“).Calculate
Oder du ersetzt die Matrixformeln durch ihre Ergebniswerte. bei bedarf dann die Formeln per vba reinschreiben, berechnen lassen, wieder in Werte wandeln.
So oder so, Code tunen, Application.screenupdating =False/true…
Gruß
Reinhard
Danke, das hilft mir schon weiter.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]