Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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

Doppelpunkt prüfen

Doppelpunkt prüfen
12.10.2015 08:57:50
thomas
Hallo Excelfreunde,
mit dem unterstehenden Macro kann ich eine Fehleingabe im Textfeld weitestgehend ausschließen. Mein Endziel soll sein das nur Stunden eingaben im Format [hh]:mm
erlaubt sein soll.
Das beste was ich bisher gefunden habe steht unten. Das was ich gern noch mit einbauen möchte ist wenn jemand ein punkt oder Komma eingibt das dies automatisch durch ein : ersetzt wird. Richtig Cool wäre auch die eingabe von buchstaben komplett zu unterbinden.
Hat jemand eine Idee?
liebe grüsse Thomas
Private Sub TextBox1_AfterUpdate()
Dim str As String
str = TextBox1.Value
If Len(str)  5 Or Mid(str, 3, 1)  ":" Or _
Val(Right(str, 2)) > 59 Or Val(Left(str, 2)) > 99 Or _
Not IsNumeric(Left(str, 1)) Or Not IsNumeric(Mid(str, 2, 1)) Or Not IsNumeric(Mid(str,  _
4, 1)) Or Not IsNumeric(Right(str, 1)) Then
MsgBox "Ungültige Eingabe"
TextBox1.Value = "00:00"
End If
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Doppelpunkt prüfen
12.10.2015 11:25:37
ChrisL
Hi Thomas
Private Sub TextBox1_AfterUpdate()
Dim str As String
str = TextBox1.Value
str = Replace(str, ".", ":")
str = Replace(str, ",", ":")
If Len(str)  5 Or Mid(str, 3, 1)  ":" Or _
Val(Right(str, 2)) > 59 Or Val(Left(str, 2)) > 99 Or _
Not IsNumeric(Left(str, 1)) Or Not IsNumeric(Mid(str, 2, 1)) Or Not IsNumeric(Mid(str,  _
_
4, 1)) Or Not IsNumeric(Right(str, 1)) Then
MsgBox "Ungültige Eingabe"
TextBox1.Value = "00:00"
End If
End Sub

Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57, 44, 46, 58
Case Else: KeyAscii = 0
End Select
End Sub

cu
Chris

Anzeige
AW: Doppelpunkt prüfen
12.10.2015 11:33:54
fcs
Hallo Thomas,
Zeiteingaben größer gleich 24 Stunden sind bei der Weiterverarbeitung in Excel problematisch.
Ansonsten würde ich das wie folgt lösen. So kann man die Zeiten auch in kurzer Form schreiben und muss führende Nullen nicht mit eingeben.
Gruß
Franz
'Uhrzeiteingabe [hh]:mm in Userform-Textbox kontrollieren
'ermöglicht Zeiteingaben >=24 STunden in Textbox
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Me.TextBox1
If .Text = "" Then
'ggf. einbauen, wenn die Textbox nicht Leer gelassen werden darf
'Cancel = True
'MsgBox "Uhrzeit ist eine Musseingabe"
ElseIf fncZeit24Plus(.Value)  "" Then
.Value = fncZeit24Plus(.Value)
Else
Cancel = True
MsgBox "unzulässige Uhrzeit-Eingabe"
End If
End With
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Eingaben in Textbox in Userform einschränken für Uhrzeit hh:00
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(":")
Case Asc("."), Asc(",")
KeyAscii = Asc(":")
Case Else
KeyAscii = 0
End Select
End Sub
Function fncZeit24Plus(strText As String) As String
Dim strHH As String, strMM As String, PosDP As Integer
Dim intHH As Integer, intMM As Integer
PosDP = InStr(strText, ":")
Select Case PosDP 'Position Doppelpunkt in Eingabe
Case 0, 1, Is >= 4
'unzulässige Positionen
Case 2, 3
intHH = Val(Left(strText, PosDP - 1))
intMM = Val(Mid(strText, PosDP + 1))
If intMM 

Anzeige
Cool es passt vielen dank FCS und ChrisL
12.10.2015 12:56:28
thomas
Hallo Franz und ChrisL,
habt recht vielen dank es passt super.
damit stimmt dann meine Statistik besser ( hatte durch Fehleingaben einige Fehler drinn)
liebe grüsse thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige