Microsoft Excel

Herbers Excel/VBA-Archiv

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

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:

 ABCD
1Fr  22.08.14Fr  22.08.14Fr  22.08.1422.08.2014
2Sa  23.08.14Mo  25.08.14Mo  25.08.1425.08.2014
3So  24.08.14Mo  25.08.14Mo  25.08.1425.08.2014
4Mo  25.08.14Mo  25.08.14Mo  25.08.1425.08.2014
5Di  26.08.14Di  26.08.14Di  26.08.1426.08.2014

Formeln der Tabelle
ZelleFormel
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"