Wie berechnet man unter VBA die Kalenderwoche eines Datums?
Wenn möglich ohne Add-In, da das Makro auf einem anderen Rechner laufen muss.
Vielen Dank.
Christian
Wie berechnet man unter VBA die Kalenderwoche eines Datums?
Wenn möglich ohne Add-In, da das Makro auf einem anderen Rechner laufen muss.
Vielen Dank.
Christian
Kalenderwoche nach DIN
Function KALENDERWOCHE_DIN(Datum As Date) As Integer
'von Christoph Kremer, Aachen
'Berechnt die KW nach DIN 1355
Dim t&
t = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
KALENDERWOCHE_DIN = (Datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
End Function
Oder im Register
Warum muß es so eine komlizierte Formel sein Erklärung von WF
Die Funktion KALENDERWOCHE rechnet falsch oder sagen wir es gnädiger: nach amerikanischem Standard. Der 01.01.2000 z.B. ist laut DIN die 52. KW des Jahres 1999; - in den USA die erste im Jahre 2000. Das hab ich mir irgendwann mal kopiert:
Erst 1976 wurde der Wochenbeginn auf Montag festgelegt. Die erste Woche des Jahres ist definiert als die Woche,in die mindestens 4 Tage fallen. Beides = DIN 1355 (1974) Entspricht der internationalen Norm ISO 8601 (1988); -übernommen von der EU als EN 28601 (1992) und in Deutschland als DIN EN 28601 (1993) umgesetzt.
=KÜRZEN((G6-WOCHENTAG(G6;2)-DATUM(JAHR(G6+4-WOCHENTAG(G6;2));1;-10))/7)&". KW"
von WF
Gruß ajo