Makrolaufzeit verkürzen
01.04.2021 12:45:46
reiner
https://www.herber.de/bbs/user/145246.xlsb
das Makro in der Beispielmappe funktioniert, aber die Bearbeitung dauert extrem lange (sh. Zelle "Y1") 1.010 Sekunden. Mir ist aufgefallen dass bei der Bearbeitung der Prozedur "Monatskalen-der" insgesamt 10.501 mal die Prozedur "dgmond" im Modul "SonnenMond_Berechnungen" aufgerufen wird, wodurch wohl die extrem lange Bearbeitungszeit resultiert. Das Makro startet nach Betätigung der roten Schaltfläche "Aktuelles Jahr (Tag)" und baut einen Kalender mit 3-Monatsansicht -beginnend mit dem 01.Oktober des Vorjahres und endet nach 18 Monaten am 31.03. des Folgejahres- auf. Dabei werden an jedem Tag die Auf-und Untergangszeiten von Sonne und Mond errechnet und als Kommentar dem jeweiligen Tag hinzugefügt. Weiterhin werden Ereignisse wie Geburtstage und andere jährlich wiederkehrende Ereignisse, wie Beginn der Jah-reszeiten und Feiertage sowie Mondphasen hinzugefügt. Aufgrund der Größenbeschränkung auf 300 kB musste das Makro um einige Codezeilen reduziert werden, aber das Problem ist geblie-ben.
In der ursprünglichen Version dieses Kalenders gab es ein weiteres Tabellenblatt mit allen Ein-trägen die jetzt beginnend mit Spalte BA und folgend auf dem einzigen verbliebenen Tabellen-blatt eingetragen sind. In der alten Version dauerte die Bearbeitung ca. 150 Sekunden, während der Bearbeitung der Prozedur "Monatskalender" wurde insgesamt ca. 1.110 mal die Prozedur "dgmond" im Modul "SonnenMond_Berechnungen" aufgerufen, also deutlich weniger Aufrufe als jetzt. Wegen des ständigen Wechsels von einem auf das andere Tabellenblatt (während der Makrobearbeitung) habe ich auf das zweite Tabellenblatt verzichtet in der Hoffnung, dass sich die Bearbeitungszeit dadurch verkürzt, aber jetzt ist das Gegenteil der Fall!!!
Es stellt sich die Frage: Warum wird die Prozedur "dgmond" 10.501 mal aufgerufen und wie lässt sich die Anzahl dieser Aufrufe erheblich reduzieren im Interesse einer schnelleren Bearbeitung was ja, wie beschrieben, in der ursprünglichen Version möglich ist?
mfG
reiner