Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kalenderwochen

Kalenderwochen
15.07.2008 07:58:00
Patrick
Hallo!
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.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tipp: Kalenderwoche
15.07.2008 08:22:00
Patrick
Danke für die schnelle Antwort!
Allerdings habe ich etwas wichtiges vergessen zu sagen: Ich möchte es mit VBA lösen, da die Tabelle jedes mal dynamisch erstellt wird. (Vielleicht sollte ich auch noch sagen, dass das Programm mit SQL - Befehlen arbeitet, und darum immer wieder neu erzeugt wird). Und eine Funktion für das korrekte Anzeigen von Kalenderwochen besitze ich ja schon.
Ich suche eine automatisierte Funktion, die einige Kalenderwochen vor der aktuellen Kalenderwoche, und einige nach der aktuellen Kalenderwoche ausgibt.
MfG

Anzeige
AW: Tipp: Kalenderwoche
15.07.2008 09:41:41
ChrisAugsburg
Versuche es mal mit dieser Variante, gibt auch die Deutsche DIN Kalenderwoche und ist geringfügig kürzer als deine Variante.
Gruss Chris

Public Function KW(Datum)
KW = DatePart("ww", Datum, 2, 2)
End Function


AW: Tipp: Kalenderwoche
15.07.2008 09:49:12
ChrisAugsburg
PS: Die Syntax ist dann übrigens =KW(Datum)
Datum kann natürlich auch als Bezug angegeben werden.

AW: Tipp: Kalenderwoche
15.07.2008 10:08:35
Patrick
Dankeschön für die Antworten!
Allerdings befürchte ich das ich mich nicht so deutlich ausgedrückt habe. Die Kalenderfunktion die ich habe, passt mir wunderbar, da sie auch bei einem Jahreswechsel sehr gut funktioniert (53. KW etc.).
Ich suche eine Funktion, die mir Kalenderwochen VOR der aktuellen Kalenderwoche ausgibt, und nicht eine "neue" Kalenderwochenfunktion.
Ich hoffe ich habe mich jetzt etwas verständlicher ausgedrückt, falls nicht, bitte einfach nachfragen! :)
MfG

Anzeige
AW: Tipp: Kalenderwoche
15.07.2008 10:20:23
ChrisAugsburg
Das tut sie doch. Du kannst damit jede beliebige Kalenderwoche generieren abhängig von einem Datum.
Wieviel Wochen vorher brauchst. wenn du eingibtst =KW(16.07.2008) dann kommt 29 raus wenn du eingibst =KW(08.07.2008) dann kommt 28 raus. oder willst du wenn du 1 eingibst die Woche vorher und wenn du 2 eingibst 2 Wochen vorher. verstehe noch nicht so ganz wie du dir die Formel vorgestellt hast.
Gruss Chris

AW: Tipp: Kalenderwoche
15.07.2008 10:50:38
Patrick
Okay, ich versuche es mal etwas näher zu erklären:
Ich lese die aktuelle Kalenderwoche mit einer Date-Variable aus. Und genau von dieser Date-Variable aus soll einige Wochen zurück gerechnet werden, bzw. voraus gerechnet werden. Also, z.B.
27 --- soll berechnet werden
28 --- soll berechnet werden
29 --------- aktuelle Kalenderwoche, die mit meiner Function ausgerechnet wird (Date Variable)
30 --- soll berechnet werden
31 --- soll berechnet werden
Ich hoffe das es jetzt etwas verständlicher ist.
MfG

Anzeige
AW: Tipp: Kalenderwoche
15.07.2008 12:17:45
ChrisAugsburg
A1 <-- A3-2
A2 <-- A3-1
A3 <-- Deine VBA Funktion
A4 <-- A3+1
A5 <-- A3+2

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige