Microsoft Excel

Herbers Excel/VBA-Archiv

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

Uhrzeit in Textbox ohne : | Herbers Excel-Forum


Betrifft: Uhrzeit in Textbox ohne : von: Mister-B
Geschrieben am: 11.01.2012 12:28:16

Hallo,

in einer Userform möchte ich, dass der Anwender eine Uhrzeit in einen TextBox eingeben kann ohne, dass er den Doppelpunkt eingeben muss. Im Forum habe ich diesen Code gefunden:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = Format(CDate(TextBox1.Text), "hh:mm")
End Sub
Er liefert zwar das richtige Format, macht aus jede Eingabe 00:00

Wer kann helfen?

Gruß
Martin

  

Betrifft: AW: Uhrzeit in Textbox ohne : von: Josef Ehrensberger
Geschrieben am: 11.01.2012 12:32:41


Hallo Martin,

am besten gleich bei der Eingabe das richtige Format erzwingen.

' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  uhrzeit TextBox1, KeyAscii
End Sub


Private Sub uhrzeit(ByRef theBox As MSForms.TextBox, ByVal KeyAscii As MSForms.ReturnInteger)
  'Eingabebeschränkung Textbox_Uhrzeit mit autom. Doppelpunkt
  'Format hh:mm
  Select Case Len(theBox)
    Case 0
      Select Case KeyAscii
        Case 48 To 50
        Case Else
          KeyAscii = 0
      End Select
    Case 1
      If Left(theBox, 1) = 2 Then
        Select Case KeyAscii
          Case 48 To 51
          Case Else
            KeyAscii = 0
        End Select
      Else
        Select Case KeyAscii
          Case 48 To 57
          Case Else
            KeyAscii = 0
        End Select
      End If
    Case 2
      Select Case KeyAscii
        Case 48 To 53, 58
          If KeyAscii <> 58 Then theBox = theBox & ":"
        Case Else
          KeyAscii = 0
      End Select
    Case 3
      If Right(theBox, 1) = ":" Then
        Select Case KeyAscii
          Case 48 To 53
          Case Else
            KeyAscii = 0
        End Select
      End If
    Case 4
      Select Case KeyAscii
        Case 48 To 57
        Case Else
          KeyAscii = 0
      End Select
    Case Else
      KeyAscii = 0
  End Select
End Sub






« Gruß Sepp »



  

Betrifft: AW: Uhrzeit in Textbox ohne : von: Luschi
Geschrieben am: 11.01.2012 14:04:22

Hallo Josef,

habe Deinen Code so abgeändert, daß der Doppelpunkt bereit nach der Eingabe der 2. Ziffer im _ Textfeld erscheint bzw. wenn als 1. Ziffer eine 3 usw. getippt wird, dann auf 03: vervollständigt wird.

Private Sub UhrZeit(ByRef theBox As MSForms.TextBox, ByVal KeyAscii As MSForms.ReturnInteger)
  'Eingabebeschränkung Textbox_Uhrzeit mit autom. Doppelpunkt
  'Format hh:mm
  'by Josef Ehrensberger
  'a little enhanced by Luschi
  Dim ok As Boolean
  Select Case Len(theBox)
    Case 0
      Select Case KeyAscii
        Case 48 To 50
        Case 51 To 57
           'erste Ziffer 3 bis 9 --> 03: - 09:
           theBox.Value = theBox.Value & "0" & Chr(KeyAscii) & ":"
           KeyAscii = 0
        Case Else
           KeyAscii = 0
      End Select
    Case 1
      ok = True
      If Left(theBox, 1) = 2 Then
        Select Case KeyAscii
          Case 48 To 51
          Case Else
            ok = False
            KeyAscii = 0
        End Select
      Else
        Select Case KeyAscii
          Case 48 To 57
          Case Else
            ok = False
            KeyAscii = 0
        End Select
      End If
      If ok Then
         '2. Ziffer korrekt, dann ':' ranhängen
         theBox.Value = theBox.Value & Chr(KeyAscii) & ":"
         KeyAscii = 0
      End If
    Case 2
      Select Case KeyAscii
        Case 48 To 53, 58
        Case Else
          KeyAscii = 0
      End Select
    Case 3
      If Right(theBox, 1) = ":" Then
        Select Case KeyAscii
          Case 48 To 53
          Case Else
            KeyAscii = 0
        End Select
      End If
    Case 4
      Select Case KeyAscii
        Case 48 To 57
        Case Else
          KeyAscii = 0
      End Select
    Case Else
      KeyAscii = 0
  End Select
End Sub
Gruß von Luschi
aus klein-Paris


Beiträge aus den Excel-Beispielen zum Thema "Uhrzeit in Textbox ohne :"