Wochentag in TextBox prüfen
Betrifft: Wochentag in TextBox prüfen
von: Frank H.
Geschrieben am: 19.08.2014 14:45:34
Hallo Zusammen!
Mein bisheriger Code:
Private Sub ListBox1_Click()
i = cbMonat.ListIndex + 1
txtBuchung = DateSerial(cbJahr, i, 1)
End Sub
Nun möchte ich aber, dass wenn der Erste auf einen Samstag fällt, dass das Datum in der TextBox - txtBuchung - um 2 weiter gezählt wid, also der Dritte des Monats als Ergebnis erscheint und wenn Sontag ist um Eins weiter gezählt wird. Wie kann ich das bewerkstelligen? Danke im Voraus!
Gruß Frank H.
Betrifft: AW: Wochentag in TextBox prüfen
von: JoWE
Geschrieben am: 19.08.2014 15:18:35
Hallo Frank,
Select Case Weekday(DateSerial(cbJahr, i, 1), 2) 'diese 2 bedeutet das Mo der 1. Wochentag ist
Case Is = 6
txtBuchung = DateSerial(cbJahr, i, 1 + 2)
Case Is = 7
txtBuchung = DateSerial(cbJahr, i, 1 + 1)
End Select
Gruß
Jochen
Betrifft: AW: Wochentag in TextBox prüfen
von: JoWE
Geschrieben am: 19.08.2014 15:20:04
Hallo Frank,
Select Case Weekday(DateSerial(cbJahr, i, 1), 2) 'diese 2 bedeutet das Mo der 1. Wochentag ist
Case Is = 6
txtBuchung = DateSerial(cbJahr, i, 1 + 2)
Case Is = 7
txtBuchung = DateSerial(cbJahr, i, 1 + 1)
Case else
txtBuchung = DateSerial(cbJahr, i, 1)
End Select
Gruß
Jochen
Betrifft: AW: Wochentag in TextBox prüfen
von: Frank H.
Geschrieben am: 19.08.2014 15:31:12
Hallo Jochen!
Perfekt, funzt bestens!!! Vielen Dank dafür und noch einen schönen Tag!
Gruß Frank H.
Betrifft: AW: Wochentag in TextBox prüfen
von: Frank H.
Geschrieben am: 19.08.2014 15:34:17
Hallo Jochen!
Perfekt, Funzt Super!!! Vielen lieben Dank und noch einen schönen Tag.
Gruß Frank H.
Betrifft: spät, dafür ein Einzeiler
von: Erich G.
Geschrieben am: 19.08.2014 18:35:54
Hi Frank,
in Excel würde ich das mit einer kurzen Formel machen, wie in Spalte B:
| A | B | C | D |
1 | Fr 22.08.14 | Fr 22.08.14 | Fr 22.08.14 | 22.08.2014 |
2 | Sa 23.08.14 | Mo 25.08.14 | Mo 25.08.14 | 25.08.2014 |
3 | So 24.08.14 | Mo 25.08.14 | Mo 25.08.14 | 25.08.2014 |
4 | Mo 25.08.14 | Mo 25.08.14 | Mo 25.08.14 | 25.08.2014 |
5 | Di 26.08.14 | Di 26.08.14 | Di 26.08.14 | 26.08.2014 |
Formeln der Tabelle |
Zelle | Formel | B1 | =A1+MAX(;2-REST(A1;7)) | C1 | =WoTag(A1) | D1 | =WoTagTxt(A1) |
|
In VBA gehts ebenso kurz, mit der Fkt. WoTag, die ein Datum zurück gibt.
Da du den Wert in einer TextBox brauchst, also einen Text, empfielt sich eher die Fkt. WoTagTxt():
Function WoTag(dDat As Date) As Date
WoTag = dDat + Application.Max(0, 2 - dDat Mod 7)
End Function
Function WoTagTxt(dDat As Date) As String
WoTagTxt = Format(dDat + Application.Max(0, 2 - dDat Mod 7), "dd/mm/yyyy")
End Function
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Betrifft: AW: spät, dafür ein Einzeiler
von: Frank H.
Geschrieben am: 19.08.2014 19:05:12
Hallo Erich!
Wie muss ich deinen Vorschlag in mein Click - Ereignis der ListBox einbauen? Ich will was lernen!
Danke und Gruß Frasnk H.
Betrifft: im Ereignis
von: Erich G.
Geschrieben am: 20.08.2014 02:07:15
Hi Frank,
probier mal
Private Sub ListBox1_Click()
Dim dDat As Date
dDat = DateSerial(cbJahr, cbMonat.ListIndex + 1, 1)
txtBuchung = Format(dDat + Application.Max(0, 2 - dDat Mod 7), "dd/mm/yyyy")
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Betrifft: AW: im Ereignis
von: Frank H.
Geschrieben am: 20.08.2014 09:17:16
Guten Morgen Erich!
Klappt auch Super, werde ich so nehmen! Besten Dank und 'nen schönen Tag!
Gruß Frank H.
Beiträge aus den Excel-Beispielen zum Thema "Wochentag in TextBox prüfen"