VBA Kalenderwochen Berechnung
Zu einem gegebenen Datum die entsprechende Kalenderwoche berechnen mit Visual Basic. So kann man Kalenderwochen nach DIN 1355 (deutsche Kalenderwochen) berechnen:
Prinzipiell gilt: Der 1. Januar eines Jahres zählt nur dann zur ersten Kalenderwoche eines Jahres, wenn dieser Tag auf einen Montag, Dienstag, Mittwoch oder Donnerstag fällt. In jedem anderen Falle zählt er noch zur letzten Kalenderwoche des vorhergehenden Jahres. Andererseits können schon der 29., 30. und 31.12. eines Jahres zur ersten Kalenderwoche KW 1 des neuen Jahres gehören, z.B., wenn der 31.12. auf einen Montag, Dienstag oder Mittwoch fällt.
Visual Basic Skript zur Berechnung einer Kalenderwoche mit gegebenem Datum nach DIN 1355:
Function kw_kalenderwochen(dat As Date) As Integer Dim a As Integer a = Int((dat - DateSerial(Year(dat), 1, 1) + _ ((WeekDay(DateSerial(Year(dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1 If a = 0 Then a = kw_kalenderwochen(DateSerial(Year(dat) - 1, 12, 31)) ElseIf a = 53 And (WeekDay(DateSerial(Year(dat), 12, 31)) - 1) _ Mod 7 <= 3 Then a = 1 End If kw_kalenderwochen = a End Function