Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datum aus KW und Tag errechnen


Betrifft: Datum aus KW und Tag errechnen von: Armin
Geschrieben am: 26.08.2016 08:39:40

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

  

Betrifft: AW: Datum aus KW und Tag errechnen von: Bernd
Geschrieben am: 26.08.2016 08:50:02

Hi,

guckst Du hier:

https://www.herber.de/forum/archiv/808to812/808921_Datum_berechnen_aus_KW_und_Tag.html


mfg Bernd


  

Betrifft: AW: Datum aus KW und Tag errechnen von: Armin
Geschrieben am: 26.08.2016 08:52:17

Hallo Bernd,

vielen Dank, leider habe ich mich da bissl falsch ausgedrückt.
Ich wollte das in VBA lösen.

Gruß Armin


  

Betrifft: AW: Datum aus KW und Tag errechnen von: baschti007
Geschrieben am: 26.08.2016 10:17:26

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



  

Betrifft: AW: Datum aus KW und Tag errechnen von: Armin
Geschrieben am: 26.08.2016 10:38:19

Wow super vielen Dank.

Bau ich gleich mal ein.

Gruß Armin


  

Betrifft: ganz schön lang ;-) von: Rudi Maintaire
Geschrieben am: 26.08.2016 13:03:22

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


  

Betrifft: AW: ganz schön lang ;-) von: baschti007
Geschrieben am: 26.08.2016 13:41:39

Hey Rudi =)
Aber bei deinem kann man nicht nach dem Tag gucken (Mo,Di.....)
Ich hab ja auch nur gegoogelt ;)

Gruß Basti


  

Betrifft: AW: ganz schön lang ;-) von: Rudi Maintaire
Geschrieben am: 26.08.2016 14:51:35

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


Beiträge aus den Excel-Beispielen zum Thema "Datum aus KW und Tag errechnen"