Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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

Solver plötzlich extrem langsam

Solver plötzlich extrem langsam
t4z
Hi Leute,
in einer Mappe A befindet sich eine recht komplexe Rechnung 'Iter', die via Solver ausgeführt wird. Genauer gesagt handelt es sich um n-Iterationsschritte, die jeweils den SolverSolve-Befehl beinhalten. Habe ich nur diese Mappe A offen, so wird die Rechnung 'Iter' in 2 Sekunden erfolgreich durchgeführt.
Öffne ich nun parallel eine weitere Mappe B, die keinerlei Verknüpfung oder sonstige Verbindungen zu Mappe A hat und führe die Rechnung 'Iter' in Mappe A erneut aus, so dauert diese plötzlich 10 min 30 sec.
Meine Recherche/Ansätze:
1. Mappe B enthält wirklich viel Quellcode inkl selbst geschriebener Funktionen, die direkt in Excel-Zellen verwendet werden. Deshalb habe ich im Quelltext von Mappe B wirklich überall zunächst und immer am Anfang Haltepunkte gesetzt. Nun habe ich in Mappe A die Rechnung 'Iter' gestartet und siehe da, der Rechner rennt in eine selbst erstellte Funktion X von Mappe B, die in 15 Zellen in einem Tabellenblatt von Mappe B Verwendung findet.
2. Daraufhin habe ich den Rumpf dieser Funktion X komplett auskommentiert und lediglich ein Integer hochzählen lassen. Dabei kam raus, dass diese Funktion X über 32.000-mal ausgeführt wird, wenn man die Rechnung 'Iter' (Mappe A) ausführt. Die Laufzeit lag immer noch bei um die 10 Minuten, auch ohne Laufindex.
3. Selbstverständlich wird vor der Rechnung in Mappe A ScreenUpdating, EnableEvents, Calculation auf False bzw. Manual und erst am Ende wieder zurückgesetzt.
4. Nachdem ein Iterationsschritt ausgeführt wurde, ließ ich mir sämtliche Systemvariablen aus Punkt 3 anzeigen. Alle waren wie gewünscht noch immer False bzw. Manual.
5. Die besagte Funktion X wurde in den Excelzellen von Mappe B gegen einen konstanten Wert ausgetauscht (Wertkopie). Danach wurde die Rechnung 'Iter' (Mappe A) erneut ausgeführt. Die Haltepunkte in Mappe B waren nach wie vor gesetzt. Leider betrug die Laufzeit noch immer um die 10 Minuten und dies ohne das auch nur eine einzige Prozedur oder Funktion aus Mappe B unerwünscht ausgeführt wurde.
Kann es sein, dass der Solver bei jedem Aufruf sämtliche Arbeitsblätter komplett durchrechnet? Eigentlich müsste er ja nur das Tabellenblatt durchrechnen und ggfs aktualisieren, in welchem sich die für ihn veränderlichen Zellen befinden.
Nach all dem bin ich leider am Ende mit meinem Latein. Habt Ihr eine Idee, was ich noch übersehen haben könnte oder noch tun könnte?

Viele Grüße, der t4z

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
genauso ist es
07.10.2010 20:29:05
WF
Hi,
das ist eine riesen Macke: der SOLVER berechnet ALLE geöffneten Dateien unabhängig davon, ob diese verknüpft sind. Und, wenn man es merkt, kann man ihn nicht mehr stoppen - da hilft nur Stecker ziehen.
Steht auch auf unserer Seite:
http://www.excelformeln.de/tips.html?welcher=117
Salut WF
Anzeige

94 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige