Hallo Birgit,
die Funktion wurde von Amerikanern programmiert. Dort startet die Woche schon Sonntags also ist Dienstag bereits der dritte Tag. Außerdem haben die Amis eine ander Nummerierung bei den Kalenderwochen. Wenn ich mich recht erinnere, startet dort die KW1 immer am 1.1. und hat nicht wie bei uns volle 7 Tage sondern besteht dieses Jahr nur aus einem Tag. Aus Amerikanischer Sicht wird also das richtige Ergebnis zurückgeliefert. Extra für uns Deutsche hat man der Funktion jedoch irgendwann in den 2000ern (weiß nicht mehr genau in welchem Jahr) zwei zusätzliche Parameter spendiert, damit auch wir die Funktion nutzen können.
Die einfachste Variante die Funktion zu nutzen wäre:
Res = DatePart(Prt, Dt, vbUseSystemDayOfWeek, vbUseSystem)
Dann erhält man das passende Ergebnis je nach den Regionseinstellungen von Windows. Im Normalfall ist das die deutsche Version.
Willst du hingegen das deutsche Format erzwingen, auch wenn dein PC in Amerika steht und dort eingerichtet wurde, dann nutze diese Variante:
Res = DatePart(Prt, Dt, vbMonday, vbFirstFourDays)
Gruß Mr. K.
|