Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

DTPicker, KWoche und das leidige Jahr

DTPicker, KWoche und das leidige Jahr
11.03.2015 09:05:49
Marcus
Hallo.
Ich muss mich als erstes mal für die Hilfe, die ich hier erhalten habe, bedanken.
Nun habe ich ein neues Problem. Die Lösung ist nur im VBA möglich!
Zur Sache: Ich habe einen DateAndTimePicker. Über das eingestellte Datum errechne ich die Kalenderwoche und schreibe diese und das Jahr in eine "Datenbank". So weit so gut.
Wenn ich jetzt aber den 31.12.2015 wähle, dann erhalte ich als KW die 53 und als Jahr 2015. Auch richtig.
Stelle ich den 1.1.2016 ein, bekomme ich richtigerweise die KW 53, habe aber das Problem, dass jetzt das Jahr auf 2016 gewechselt hat, es aber ja keine KW 53 in 2016 gibt. Ich muss also verhindern, dass solange es die letzte KW im Jahr ist, sich das Datum wechselt. Dies muss nicht im DTPicker geschehen, sondern kann beim schreiben in die "Datenbank" einfließen.
Zur Verdeutlichung:
  • 
    Private Sub DTPickerBetriebsstunden_Change()
    'beim initialisieren wieder verlassen
    If blnInInit Then Exit Sub
    Dim KW As Integer
    With DTPickerBetriebsstunden
    'KW ausrechnen
    KW = CInt(Kalenderwoche_DIN(.Value))
    'KW an die Wochenanzeige übergeben
    WriteValue CInt(KW), "Fix32.THISNODE.AUSWAHL_WO_BSANZEIGE.F_CV"
    'Datumswechsel noch berechnen
    If ** was muss ich hier schreiben? ** Then
    WriteValue CInt(Year(.Value) - 1), Fix32.THISNODE.AUSWAHL_JA_BSANZEIGE.F_CV"
    Else
    WriteValue CInt(Year(.Value)), "Fix32.THISNODE.AUSWAHL_JA_BSANZEIGE.F_CV"
    End If
    End With
    End Sub
    


  • Der Code darf natürlich auch geändert werden, wenn jemand eine bessere Idee hat.
    Vielen Dank erstmal.

    6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: DTPicker, KWoche und das leidige Jahr
    11.03.2015 09:36:07
    yummi
    Hallo Marcus,
    
    Private Sub DTPickerBetriebsstunden_Change()
    'beim initialisieren wieder verlassen
    If blnInInit Then Exit Sub
    Dim KW As Integer
    With DTPickerBetriebsstunden
    Dim Jahr As Integer, AnzTag As Date
    'KW ausrechnen
    KW = CInt(Kalenderwoche_DIN(.Value))
    'KW an die Wochenanzeige übergeben
    WriteValue CInt(KW), "Fix32.THISNODE.AUSWAHL_WO_BSANZEIGE.F_CV"
    'Tag ausrechnen
    Jahr = Year(Now)
    AnzTag = "1.1." & Jahr
    AnzTag = DateDiff("d", AnzTag, Now()) + 1
    'Datumswechsel noch berechnen
    If AnzTag 
    Gruß
    yummi

    AW: DTPicker, KWoche und das leidige Jahr
    11.03.2015 10:23:53
    Marcus
    Vielen Dank.
    Leider geht es noch nicht. Das selbe Problem. Das mit dem Now() verstehe ich auch nicht, denn es muss ja unabhängig vom tatsächlichen Jahr auch funktionieren, wenn ich z.B. 2014 oder auch 2022 im DTPicker gewählt habe.

    Anzeige
    AW: DTPicker, KWoche und das leidige Jahr
    11.03.2015 10:28:40
    yummi
    Hallo Marcus,
    sry mein Fehler, nimm statt now .Value also Year(.Value)
    Gruß
    yummi

    AW: DTPicker, KWoche und das leidige Jahr
    11.03.2015 10:33:43
    Marcus
    Kein Problem, hatte ich gleich von Anfang an mit Year(.Value) gebaut. Hat aber trotzdem nicht funktioniert. Leider.
    Hab jetzt die Lösung von fcs benutzt.
    Trotzdem Vielen Dank für deine Mühe.

    AW: DTPicker, KWoche und das leidige Jahr
    11.03.2015 10:18:58
    fcs
    Hallo Marcus,
    mit folgenden Anpassungen sollte es funktionieren.
    Gruß
    Franz
    Private Sub DTPickerBetriebsstunden_Change()
    'beim initialisieren wieder verlassen
    If blnInInit Then Exit Sub
    Dim KW As Integer
    Dim Jahr As Integer
    With DTPickerBetriebsstunden
    'KW ausrechnen
    KW = CInt(Kalenderwoche_DIN(.Value))
    'KW an die Wochenanzeige übergeben
    WriteValue CInt(KW), "Fix32.THISNODE.AUSWAHL_WO_BSANZEIGE.F_CV"
    'Datumswechsel noch berechnen
    Jahr = Year(.Value)
    Select Case Month(.Value)
    Case 1 'Januar
    If KW >= 52 Then Jahr = Jahr - 1
    Case 12 'Dezember
    If KW = 1 Then Jahr = Jahr + 1
    End Select
    WriteValue CInt(Jahr), "Fix32.THISNODE.AUSWAHL_JA_BSANZEIGE.F_CV"
    End With
    End Sub
    

    Anzeige
    AW: DTPicker, KWoche und das leidige Jahr
    11.03.2015 10:31:16
    Marcus
    Vielen Dank.
    Ich hab es so gebaut und es funktioniert. Recht Vielen Dank.
    Einen schönen Tag noch.

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige