Kalenderwochen
15.07.2008 07:58:00
Patrick
Ich habe da ein großes Problem: Ich muss für meine Firma ein Datenanalyse-Programm in excel erstellen. Ganz links sollen die Kalenderwochen aufgelistet werden. Und genau da sitzt mein Problem: Ich habe zwar eine Formel für die korrekte Anzeige der aktuellen Kalenderwoche, allerdings möchte ich auch einige Kalenderwochen davor und einige danach angezeigt bekommen, und das völlig dynamisch. Ist dies möglich, bzw. kann mir jemand helfen?
Hier ist meine Kalenderwochenfunktion:
Function KWoche(KwDatum)
'Deklaration der Konstanten
Const Sonntag = 1
Const Montag = 2
Const Dienstag = 3
Const Mittwoch = 4
Const Donnerstag = 5
Const Freitag = 6
Const Samstag = 7
'Fehlersprungmarke setzen
On Error GoTo Fehlermarke:
'Bestimmung der zur Berechnung notwendigen Variablen
Jahresanfang = DateSerial(Year(KwDatum), 1, 1)
VorJahresEnde = DateSerial(Year(KwDatum) - 1, 1, 1)
WochentagJahresanfang = Weekday(Jahresanfang)
WochentagVorJahresEnde = Weekday(VorJahresEnde)
differenz = DateValue(KwDatum) - Jahresanfang
'bestimmt die Kalenderwoche des ersten Tags des Jahres
'ab Donnerstag -> KW1 des aktuellen Jahres
'bis Mittwoch -> KW 52/53 des letzten Jahres
'mittels der Differenz wird dann die KW des Eingabedatums berechnet
Select Case WochentagJahresanfang
Case Donnerstag
'Prüfung ob es sich um eine Schaltjahr handelt
If (differenz - (WochentagJahresanfang - 6)) / 7
Function KW(d As Date)
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
End Function
Function IstSchaltjahr(datDate As Date) As Boolean
IstSchaltjahr = Day(DateSerial(Year(datDate), 2, 29)) = 29
End Function
Mit freundlichen Grüßen
PS: Ich lasse das akutelle Datum in eine Variable schreiben und diese Variable setze ich dann in diese Funktion ein.