Clever-Excel-Forum

Normale Version: VBA-Skript Datum-> Kalendarwoche
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe eine Frage zu einem VBA-Skript das ich nicht verstehe.
Und zwar berechnet mir der Code zu einem Datum die Kalendarwoche. Aber ich verstehe nicht, wie das zu stande kommt. Kann mir das jemand erklären?

Private Function KW(d As Date) As Integer
Dim t As Variant
    t = DateSerial(Year(d + (8 - Weekday(d)) Mod 7 - 3), 1, 1)
    KW = (d - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
End Function

Gibt es auch andere Möglichkeiten, die Kalendarwochen zu einem Jahr/Monaten zu berechnen?
Hi,


Mit der Funktion KALENDERWOCHE,  die ist doch in Excel schon drin.
ok , kannst du mir noch erklären, wie der Code funktionert?
Moin!
Dein ursprünglicher Code ist Asbach Uralt und braucht nicht mehr erklärt werden.
Seit Excel 2010 geht dies so:
Wir haben aktuell:
Code:
MsgBox "KW " & WorksheetFunction.WeekNum(Date, 21)

Gruß Ralf
Trotzdem!
Ich will das einfach verstehen, aus Interesse daran.
Dann lies Dir zunächst mal die ISO 8601 durch:
https://de.wikipedia.org/wiki/Woche#Kalenderwoche

Ergänzend dazu die Ermittlung der DIN-KW gemäß Excelformeln:
http://www.herber.de/excelformeln und bitte suchen .../formeln.html?welcher=7

Der Rest ist einfache Mathematik!
(dazu sollte Dir aber der Modulo-Operator bekannt sein)

Gruß Ralf
Aah jetzt hab ich es gerallt :)

Danke euch beiden!