Thema Datum  Von Nutzer Rating
Antwort
17.11.2023 22:00:09 xlKing
Solved
17.11.2023 23:11:18 xlKing
NotSolved
18.11.2023 00:37:55 xlKing
NotSolved
Blau Ostersonntag korrekt berechnen
20.11.2023 11:12:30 Der Steuerfuzzi
NotSolved
20.11.2023 17:29:44 xlKing
NotSolved
18.11.2023 01:40:22 Gast01287
NotSolved
18.11.2023 04:09:40 Gast77653
NotSolved
18.11.2023 17:41:38 xlKing
NotSolved
18.11.2023 18:58:03 Gast69709
NotSolved
19.11.2023 03:00:06 xlKing
NotSolved
19.11.2023 12:30:20 Gast158
NotSolved
19.11.2023 19:47:24 Gast95273
NotSolved
19.11.2023 22:50:38 xlKing
NotSolved
19.11.2023 23:04:15 xlKing
NotSolved
20.11.2023 10:03:13 Gast28942
NotSolved
20.11.2023 10:27:21 Gast9314
NotSolved
21.11.2023 00:11:33 Gast75580
NotSolved
22.11.2023 12:22:01 Gast45652
NotSolved

Ansicht des Beitrags:
Von:
Der Steuerfuzzi
Datum:
20.11.2023 11:12:30
Views:
89
Rating: Antwort:
  Ja
Thema:
Ostersonntag korrekt berechnen

Hallo Mr. K,

 

DateSerial funktioniert allerdings nur für Jahre ab 100 (https://support.microsoft.com/de-de/office/dateserial-funktion-a0128476-83a0-407c-831a-93f2b046f503). Bei Jahren von 0 bis 100 gibt die Funktion das Jahr 2000 ff. aus. 

Man könnte die Geschwindigkeit noch etwas verbessern, indem man die Typumwandlung weglässt und die Variablen ordentlich deklariert. Die Division ohne Rest könnte man (ein wenig schneller) mit dem dafür vorgesehene Operator (Backslash) berechnen. Und eine weitere (wenn auch nur sehr geringe) Optimierung kann man bei der Prüfung der Ausnahmen erreichen, indem man  die Bedingungen einzeln prüft, dann müssen nicht so viele Vergleiche abgearbeitet werden.

Bei 100.000 Berechnungen konnte zwar die reine Berechnungszeit bei mir von ca. 1,38 auf 0,57 Sekunden prozentual erheblich verringert werden. Allerdings ist das absolut gesehen so marginal, dass es so gut wie gar nicht ins Gewicht fällt, zumal die Berechnungsdauer wohl eher mit den Zellaktualisierungen zusammenhängt.

Dass die Berechnung mit Excelformeln so viel schneller ist, liegt wohl auch daran, dass weniger Berechnungen stattfinden und die Berechnung auch multithreaded erfolgt, während VBA singlethreaded berechnet wird.

Allerdings wird man die 10.000 Osterformeln ja nicht dauernd berechnen müssen, es reicht ja einmal für alle Jahre, dann kann man das Ergebnis statisch in die Zelle schreiben.

Das einzige was ich ändern würde ist die gesonderte Funktion für die Umwandlung in Text bei Jahren vor 1900. Das kann man lösen, indem man den Rückgabewert der Funktion als Variant deklariert und dann entsprechend bei der Zuweisung prüft, ob ein Jahr vor 1900 vorliegt und dementsprechend ein Datum oder einen Text zuweist. Man kann mittels Application.Caller auch prüfen, ob die Funktion in einer Tabelle steht und das Textformat nur dann zuweisen, wenn aus der Tabelle aufgerufen wird.

Gruß

Michael 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
17.11.2023 22:00:09 xlKing
Solved
17.11.2023 23:11:18 xlKing
NotSolved
18.11.2023 00:37:55 xlKing
NotSolved
Blau Ostersonntag korrekt berechnen
20.11.2023 11:12:30 Der Steuerfuzzi
NotSolved
20.11.2023 17:29:44 xlKing
NotSolved
18.11.2023 01:40:22 Gast01287
NotSolved
18.11.2023 04:09:40 Gast77653
NotSolved
18.11.2023 17:41:38 xlKing
NotSolved
18.11.2023 18:58:03 Gast69709
NotSolved
19.11.2023 03:00:06 xlKing
NotSolved
19.11.2023 12:30:20 Gast158
NotSolved
19.11.2023 19:47:24 Gast95273
NotSolved
19.11.2023 22:50:38 xlKing
NotSolved
19.11.2023 23:04:15 xlKing
NotSolved
20.11.2023 10:03:13 Gast28942
NotSolved
20.11.2023 10:27:21 Gast9314
NotSolved
21.11.2023 00:11:33 Gast75580
NotSolved
22.11.2023 12:22:01 Gast45652
NotSolved