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

Forumthread: Datum aus KW und Tag errechnen

Datum aus KW und Tag errechnen
26.08.2016 08:39:40
Armin
Guten morgen zusammen,
ich habe folgendes Problem.
Über ein UserForm gibt der mitarbeiter Kalenderwoche und tag ein.
Jetzt soll mir in der Ausgabe aber folgendes erscheinen.
Eingabe :
KW = 34
Montag
Ausgabe:
Montag; 22.08.2016
Gruß Armin
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum aus KW und Tag errechnen
26.08.2016 08:52:17
Armin
Hallo Bernd,
vielen Dank, leider habe ich mich da bissl falsch ausgedrückt.
Ich wollte das in VBA lösen.
Gruß Armin
Anzeige
AW: Datum aus KW und Tag errechnen
26.08.2016 10:17:26
baschti007
Dafür gibt es eine Funktion
Gruß Basti

Sub ff()
MsgBox GetDateFromWeek(26 + 1, vbTuesday) ' Im Jahr 2016 muss zu der Kalenderwoche noch eine   _
_
Woche hinzugefügt werden da die KW1 nicht ab dem 1.1.2016 anfängt sondern 4.1.2016
End Sub
Public Function GetDateFromWeek(ByVal nWeek As Integer, _
Optional ByVal nDayOfWeek As VBA.VbDayOfWeek = vbMonday, _
Optional ByVal nYear As Integer = -1) As Date
Dim nCurWeek As Integer
Dim vStart As Variant
Dim vMonday As Variant
Dim vSunday As Variant
Dim nDay As Integer
' Kein Jahr angeben? Dann aktuelles Jahr verwenden!
If nYear = -1 Then nYear = Year(Now)
' aktuelle Woche im Jahr nYear ermitteln
vStart = DateSerial(nYear, Month(Now), Day(Now))
nCurWeek = Val(Format$(vStart, "ww", vbMonday))
' Datum der gewünschten Woche ermitteln
vStart = DateAdd("ww", nWeek - nCurWeek, vStart)
' Wochenanfang ermitteln
nDay = Weekday(vStart, vbMonday)
' Datum des gewünschten Wochentags ermitteln
If nDayOfWeek = vbSunday Then
GetDateFromWeek = DateAdd("d", -nDay + 7, vStart)
Else
GetDateFromWeek = DateAdd("d", -nDay + nDayOfWeek - 1, vStart)
End If
End Function

Anzeige
AW: Datum aus KW und Tag errechnen
26.08.2016 10:38:19
Armin
Wow super vielen Dank.
Bau ich gleich mal ein.
Gruß Armin
ganz schön lang ;-)
26.08.2016 13:03:22
Rudi
Hallo,
das tut's auch:
Function MoInKW(KW As Integer, Jahr As Integer) As Date
MoInKW = CDate("4.1." & Jahr) + KW * 7 - 7 - CDate("2.1." & Jahr) Mod 7
End Function
Gruß
Rudi
Anzeige
AW: ganz schön lang ;-)
26.08.2016 13:41:39
baschti007
Hey Rudi =)
Aber bei deinem kann man nicht nach dem Tag gucken (Mo,Di.....)
Ich hab ja auch nur gegoogelt ;)
Gruß Basti
AW: ganz schön lang ;-)
26.08.2016 14:51:35
Rudi
Hallo,
mit Tag:
Function TagInKW(KW As Integer, Jahr As Integer, Optional Tag As String = "Mo") As Date
TagInKW = CDate("4.1." & Jahr) + KW * 7 - 7 - CDate("2.1." & Jahr) Mod 7
TagInKW = TagInKW + InStr(1, " modimidofrsaso", Left(Tag, 2), 1) / 2 - 1
End Function
Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum aus Kalenderwoche und Tag berechnen in Excel


Schritt-für-Schritt-Anleitung

Um das Datum aus KW und Tag in Excel zu ermitteln, kannst du die folgende VBA-Funktion nutzen. Diese Funktion hilft dir dabei, das Datum basierend auf einer eingegebenen Kalenderwoche (KW) und einem Wochentag zu berechnen:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem du im Menü Einfügen auf Modul klickst.
  3. Kopiere den folgenden VBA-Code in das Modul:
Function TagInKW(KW As Integer, Jahr As Integer, Optional Tag As String = "Mo") As Date
    TagInKW = CDate("4.1." & Jahr) + KW * 7 - 7 - CDate("2.1." & Jahr) Mod 7
    TagInKW = TagInKW + InStr(1, " modimidofrsaso", Left(Tag, 2), 1) / 2 - 1
End Function
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Verwende die Funktion in einer Zelle, um das Datum zu berechnen, z.B. =TagInKW(34, 2016, "Mo").

Mit dieser Funktion kannst du das Datum aus KW und den gewünschten Wochentag ermitteln.


Häufige Fehler und Lösungen

  • Fehler: #NAME?

    • Lösung: Stelle sicher, dass du die Funktion korrekt in VBA definiert hast und dass der VBA-Code keine Syntaxfehler enthält.
  • Fehler: Ungültiger Wochentag

    • Lösung: Überprüfe die Eingabe für den Wochentag. Er sollte als "Mo", "Di", "Mi", etc. eingegeben werden.

Alternative Methoden

Es gibt auch andere Ansätze, um aus Kalenderwoche Datum zu ermitteln. Eine einfache Excel-Formel könnte so aussehen:

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

Diese Formel gibt dir den Montag der gewünschten KW zurück. Du kannst sie erweitern, um das Datum für andere Wochentage zu berechnen.


Praktische Beispiele

  1. Berechnung für Montag der KW 34 im Jahr 2016:

    =TagInKW(34, 2016, "Mo")  ' Ergebnis: 22.08.2016
  2. Berechnung für Dienstag der KW 34 im Jahr 2016:

    =TagInKW(34, 2016, "Di")  ' Ergebnis: 23.08.2016

Tipps für Profis

  • Nutze Datenvalidierung in Excel, um sicherzustellen, dass nur gültige Wochentage eingegeben werden.
  • Erstelle ein UserForm, um die Benutzerfreundlichkeit zu verbessern und die Eingabe von KW und Wochentag zu erleichtern.
  • Verwende Kommentare in deinem VBA-Code, um die Funktionalität zu dokumentieren, besonders wenn du sie in größeren Projekten verwendest.

FAQ: Häufige Fragen

1. Wo finde ich die Kalenderwoche eines bestimmten Datums?
Du kannst die Funktion =KALENDERWOCHE(Datum;2) verwenden, um die Kalenderwoche eines bestimmten Datums zu ermitteln.

2. Wie kann ich das Datum aus einer Kalenderwoche und einem Wochentag in einer Formel berechnen?
Verwende die VBA-Funktion TagInKW oder die oben genannte Excel-Formel, um das Datum zu berechnen.

3. Ist es möglich, diese Funktion in Excel Online zu verwenden?
VBA-Funktionen sind in Excel Online nicht verfügbar. Du kannst jedoch alternative Excel-Formeln nutzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige