Ich will per VBA die Kalenderwoche eines Datums (mit Zeitangabe) ausschreiben. Das geht in den meisten Fällen ganz gut mit:
Function Kw(d As Date) As Integer
Dim t As Long
t = DateSerial(Year(d + (8 - Weekday(d)) Mod 7 - 3), 1, 1)
Kw = (d - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
If d = 0 Then Kw = 0
End Function
Nun tritt jedoch jeweils Sonntag nach 12:00 ein Problem auf (als Integer wird solch ein Datum aufgerundet). In der Formel von "Kw=" erhalte ich jetzt für "d-t" das selbe Resultat wie für den Montag. Somit wird die Kalenderwoche falsch ausgegeben.
Wie kann ich das Problem lösen? Gibt es eine VBA Funktion um das Datum abzurunden?
Vielen Dank im voraus
felix