AW: Zeichen finden und in neue Zeile verschieben
26.08.2016 10:03:57
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