Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1596to1600
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

Eingabe in Textbox auf korrektes Format prüfen

Eingabe in Textbox auf korrektes Format prüfen
27.12.2017 16:01:59
Rincewind
Hallo zusammen,
ich erfasse über eine Userform die Dauer sämtlicher Tätigkeiten, die für verschiedene Mandanten ausgeführt werden. Funktioniert auch alles super. Die Dauer wird im Format hh:mm in die Textbox eingetragen und dann beim Eintragen ins Datenblatt in eine Dezimalzahl umgewandelt.
Es kommt allerdings öfter vor, dass ein Mitarbeiter versehentlich statt eines Doppelpunktes einen Punkt, ein Semikolon oder gar keine Minutenangabe eintippt, was immer wieder zu Fehlern in der Abrechnung führt. Daher ist jetzt die Frage, ob es irgendwie möglich ist, die Eingabe in der entsprechenden Textbox zu überprüfen ob sie auch tatsächlich als hh:mm eingegeben wurde und dann eben bei falscher Eingabe eine MsgBox als Hinweis anzuzeigen und die Eintragung nicht zu übernehmen.
Danke im Voraus
Volker

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabe in Textbox auf korrektes Format prüfen
27.12.2017 16:13:44
eres
Hallo Volker, mal eine andere Idee:
Nimm doch zwei Listboxen in die UF, eine für die Stunden und eine für Minuten.
Diese belegst Du mit entsprechenden Werten vor und so kann der User nur gültige Werte auswählen.
Die von Dir gewünschte Prüfung kennt aber bestimmt auch jemand von den Spezialisten hier im Forum, darum lasse ich die Frage offen.
Gruß
erwin
AW: Eingabe in Textbox auf korrektes Format prüfen
27.12.2017 16:55:43
Rincewind
Danke, war ne gute Idee. So geschehen. Dann habe ich auch nicht mehr den blöden Fehler, das Zeiten ab 24 h oder über 59 Minuten einen Fehler erzeugen. Aber danke auch an Sepp für den Vorschlag.
AW: Eingabe in Textbox auf korrektes Format prüfen
27.12.2017 16:16:44
Sepp
Hallo Volker,
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
If IsDate(TextBox1) Then
  If CDbl(CDate(TextBox1)) >= 0 And CDbl(CDate(TextBox1)) < 1 Then
    Range("A1") = CDbl(CDate(TextBox1) * 24)
  End If
Else
  MsgBox "Falsche eingabe!"
End If
End Sub

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
'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

Private Sub UserForm_Click()

End Sub

Gruß Sepp

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige