Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum anhand der KW in VBA errechnen

Datum anhand der KW in VBA errechnen
06.06.2006 07:39:16
Thomas
Hallo
Ich möchte in VBA das Datum von Montag und von Sonntag an hand der KW berechnen.
Wie muß ich das machen?
Gruß Thomas
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
anhand von Formel wüsst ich ...
06.06.2006 07:50:51
Formel
http://www.excelformeln.de/formeln.html?welcher=186
Moin Thomas,
die Jungs von excelformeln wissen, wie das mit Bordmitteln geht. Ich lass die Frage aber offen, da nicht mit VBA gelöst. Notfalls schreib o.g. Formel in eine versteckte Tabelle und zieh dir von dort das Ergebniss.
Gruß,
Klaus M.vdT.
Anzeige
AW: anhand von Formel wüsst ich ...
06.06.2006 09:20:32
Formel
Hallo Thomas,
wie wärs mit der VBA-Variante der Excelformel aus
http://www.excelformeln.de/formeln.html?welcher=186
Function DatInWoche(iJahr As Integer, iKW As Integer, iWT As Integer)
'=("4.1."&A2)+A1*7-7-REST("2.1."&A2;7)
DatInWoche = DateValue("4.1." & iJahr) + iKW * 7 - 8 - DateValue("2.1." & iJahr) Mod 7 + iWT
End Function

Mit DatInWoche(2006, 5, 1) bekommst du den Montag der 5. KW in 2006,
mit DatInWoche(2006, 5, 7) ensprechend den Sonntag danach.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Datum anhand der KW in VBA errechnen
06.06.2006 08:37:41
Luschi
Hallo Thomas,
so geht's in Vba:
Public Function Kalenderwoche(Datum As Date)
Kalenderwoche = Format(Datum, "ww", 2, 2)
End Function
Aufruf:
MsgBox (Kalenderwoche(Date))
Gruß von Luschi
aus klein-Paris
PS: übrigens 1 Tipp von einem Access-Forum
(http://www.access-paradies.de/tipps/kalenderwoche_aus_datum_ermitteln.php)
Anzeige
AW: Datum anhand der KW in VBA errechnen
06.06.2006 10:25:45
Luschi
Hallo Erich,
Public Function Kalenderwoche(Datum As Date)
Kalenderwoche = Format(Datum, "ww", vbMonday, vbFirstFourDays)
End Function
Sub test()
MsgBox Kalenderwoche(CVDate("31.12.2007"))
End Sub
ergibt bei mit WinXP & ExcelXP die Kalenderwoche 53.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Datum anhand der KW in VBA errechnen
06.06.2006 10:37:24
Erich
Hallo Luschi,
das ist nicht weiter verwunderlich:
Auch Kalenderwoche(CVDate("31.12.2007")) rechnet falsch.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Datum anhand der KW in VBA errechnen
06.06.2006 10:43:27
Erich
Hallo nochmal,
'tschuldigung, oben hatte ichs grad vertauscht:
Für den 31.12.2007 ist die richtige KW=1, nicht 53!
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Datum anhand der KW in VBA errechnen
06.06.2006 11:23:08
Luschi
Hallo Erich,
das kann nicht sein. Lt. WinXP-Kalender ist der 31.12.2007 ein Montag. Da nach DIN aber die 1. Woche im neuen Jahr erst dann zählt, wenn die Woche 4 Tage des neuen Jahres zählt, liegt der 31.12.2007 noch in der 53. Woche.
Schau Dir mal die Parameter in der Funktion Kalenderwoche an.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Datum anhand der KW in VBA errechnen
06.06.2006 12:01:28
Erich
Hallo Luschi,
schau mal bei
http://de.wikipedia.org/wiki/Woche#Kalenderwoche
Da findest du auch als Beispiel den 29.12.2003.
Der gehört zur 1. Woche des Jahres 2004.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Kalenderwoche nach DIN
06.06.2006 12:11:02
Erich
Hallo Luschi,
noch ein Link dazu:
http://www.cabeweb.de/fun/din1355.htm
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Sorry, hast natürlich recht!
06.06.2006 13:25:47
Luschi
Hallo Erich,
bei mir ist's heute ein bischen stressig; aber es ist gut zu wissen, daß Andere meine Fehler geraderücken.
Gruß von Luschi
aus klein-Paris
AW: natürlich? Dein Fehler?
06.06.2006 20:13:26
Erich
Hallo Luschi,
so natürlich ist das nicht, so manches Mal liege ich auch völlig daneben!
Und: Das war doch nicht dein Fehler - meist kann man sich ja doch auf M$ verlassen.
Aber bei der Kalenderwoche haben sie sich nicht wirklich nach der DIN bzw. EN gerichtet...
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Datum anhand der KW in VBA errechnen
06.06.2006 09:51:01
Thomas
Danke, ihr habt mir alle sehr geholfen.
Grtuß Thomas
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Datum anhand der Kalenderwoche in VBA berechnen


Schritt-für-Schritt-Anleitung

Um das Datum anhand der Kalenderwoche in VBA zu ermitteln, kannst du eine benutzerdefinierte Funktion erstellen. Hier ist eine Anleitung, wie du das machst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge folgenden VBA-Code ein:

    Function DatInWoche(iJahr As Integer, iKW As Integer, iWT As Integer)
       DatInWoche = DateValue("4.1." & iJahr) + iKW * 7 - 8 - DateValue("2.1." & iJahr) Mod 7 + iWT
    End Function
  4. Speichere das Modul und schließe den VBA-Editor.

  5. Du kannst nun die Funktion DatInWoche in Excel verwenden, um das Datum zu berechnen. Zum Beispiel gibt =DatInWoche(2006, 5, 1) den Montag der 5. KW 2006 zurück.


Häufige Fehler und Lösungen

  • Fehler: Falsches Datum
    Wenn das Ergebnis nicht dem erwarteten Datum entspricht, überprüfe die Eingaben in der Funktion. Stelle sicher, dass du das richtige Jahr und die korrekte KW angibst.

  • Fehler: Formatfunktion rechnet falsch
    Bei der Verwendung von Format(Datum, "ww") kann es zu Problemen kommen. Verwende stattdessen die benutzerdefinierte Funktion Kalenderwoche, um die genauen Werte zu erhalten.


Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch Excel-Formeln verwenden, um das Datum anhand der Kalenderwoche zu berechnen. Hier ist eine Beispiel-Formel:

=DATUM(Jahr;1;1) + (KW-1)*7 - WOCHENTAG(DATUM(Jahr;1;1);2) + 1

Diese Formel berechnet das Datum des Montags einer bestimmten KW, wobei Jahr und KW Platzhalter für die entsprechenden Werte sind.


Praktische Beispiele

  1. Montag der 25. KW 2023:

    MsgBox DatInWoche(2023, 25, 1) ' Gibt den Montag der 25. KW zurück
  2. Sonntag der 25. KW 2023:

    MsgBox DatInWoche(2023, 25, 7) ' Gibt den Sonntag der 25. KW zurück

Diese Beispiele zeigen, wie du das Datum mithilfe der Funktion DatInWoche ermitteln kannst.


Tipps für Profis

  • Verwende die richtige Woche: Beachte, dass die erste Woche des Jahres laut DIN ISO 8601 die Woche ist, die mindestens vier Tage des neuen Jahres enthält. Das kann bei der Berechnung der KW in VBA wichtig sein.

  • Kalenderwoche in Access nutzen: Wenn du auch mit Access arbeitest, kannst du ähnliche VBA-Funktionen verwenden, um das Datum aus der Kalenderwoche zu berechnen.


FAQ: Häufige Fragen

1. Wie kann ich die Kalenderwoche aus einem Datum in VBA ermitteln?
Du kannst die Funktion Kalenderwoche verwenden, um die KW aus einem Datum zu erhalten:

Public Function Kalenderwoche(Datum As Date)
    Kalenderwoche = Format(Datum, "ww", vbMonday, vbFirstFourDays)
End Function

2. Gibt es eine Möglichkeit, diese Berechnungen in Excel ohne VBA durchzuführen?
Ja, du kannst Excel-Formeln verwenden, um das Datum anhand der Kalenderwoche zu berechnen, wie im Abschnitt „Alternative Methoden“ beschrieben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige