Ich möchte in VBA das Datum von Montag und von Sonntag an hand der KW berechnen.
Wie muß ich das machen?
Gruß Thomas
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
Public Function Kalenderwoche(Datum As Date)
Kalenderwoche = Format(Datum, "ww", 2, 2)
End Function
Aufruf:
MsgBox (Kalenderwoche(Date))
Gruß von LuschiPublic 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.Um das Datum anhand der Kalenderwoche in VBA zu ermitteln, kannst du eine benutzerdefinierte Funktion erstellen. Hier ist eine Anleitung, wie du das machst:
Öffne Excel und drücke ALT
+ F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
> Modul
, um ein neues Modul zu erstellen.
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
Speichere das Modul und schließe den VBA-Editor.
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.
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.
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.
Montag der 25. KW 2023:
MsgBox DatInWoche(2023, 25, 1) ' Gibt den Montag der 25. KW zurück
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.
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.
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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen