VBA-Skript Datum-> Kalendarwoche
#1
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?
Top
#2
Video 
Hi,


Mit der Funktion KALENDERWOCHE,  die ist doch in Excel schon drin.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#3
ok , kannst du mir noch erklären, wie der Code funktionert?
Top
#4
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#5
Trotzdem!
Ich will das einfach verstehen, aus Interesse daran.
Top
#6
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Mixer007
Top
#7
Oder hier:

http://www.snb-vba.eu/VBA_ISO_weeknummer_en.html
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Mixer007
Top
#8
Aah jetzt hab ich es gerallt :)

Danke euch beiden!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste