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

Textbox Begrenzung [hh]:mm

Textbox Begrenzung [hh]:mm
02.08.2018 07:35:08
Berg
Hallo,
über die Textbox3 einer Userform sollen nur Stunden und Minuten eingetragen werden.
Dass hier keine fehlerhaften Einträge entstehen (z.B. Buchstaben) möchte ich beim Verlassen der Textbox die Inhalte vorab prüfen.
Das Format wäre "hh:mm" wobei auch mehr als 24 Stunden z.B. 105:45 eingeben werden könnnen. Das Format soll immer minimal 4 Stellen haben d.h. aus 2:2 wird z.B. 02:02 oder aus 25:1 wird beim Verlassen der Textbox 25:10.
Ich habe schon einiges Versucht (auch mit [hh]:mm)aber ich komme alleine nicht auf eine Lösung.
Besten Dank vorab.
VG

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox Begrenzung [hh]:mm
02.08.2018 07:57:36
Hajo_Zi

Option Explicit
Private Sub TextBox1_AfterUpdate()
TextBox1 = Format(Left(TextBox1, InStr(TextBox1, ":") - 1), "00") & ":" & _
Format(Mid(TextBox1, InStr(TextBox1, ":") + 1), "00")
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Textbox Begrenzung [hh]:mm
02.08.2018 09:42:01
Berg
Danke für schnellen Antworten.
Mit der Lösung von Hajo wird das Format jeweils mit 2 Ziffern vor und nach dem Doppelpunkt erreicht. Allerdings wenn der Benutzer versehentlich einen Buchstaben eingibt bekomme ich einen Bug.
Die Lösung mit dem KeyAscii funktioniert aber das Format wird nicht korrigiert z.B. wenn jemand 2:2 eingibt wird daraus nicht 02:20. Ich habs so probiert aber damit kann man nicht mehr als 24 Stunden eingeben:
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox3 = "" Then Exit Sub
If Not IsDate(Me.TextBox3) Then
MsgBox ("Eingabe ist nicht vom Type Date!")
TextBox3.BackColor = RGB(100, 100, 199)
Else
TextBox3.BackColor = RGB(255, 255, 255)
TextBox3 = Format(TextBox3, "hh:mm")
End If
End Sub
Und auch wenn ich [hh]:mm oder [h]:mm schreibe funktionierts nicht. Kann mir da nochmal jemand helfen bitte?
Anzeige
AW: Textbox Begrenzung [hh]:mm
02.08.2018 10:06:41
daniel
Hi
ja, weil du mehr als 24h angeben willst, funktionert das mit dem IsDate und Format nicht.
probiers mal so:

With TextBox1
If Right(.Text, 2) Like ":#" Then .Text = Left(.Text, Len(.Text) - 1) & "0" & Right(.Text, 1)
If Left(.Text, 2) Like "#:" Then .Text = "0" & .Text
If .Text Like "##:[0-5]#" Or .Text Like "###:[0-5]#" Then
Else
Cancel = True
End If
End With
Gruß Daniel
Anzeige
AW: Textbox Begrenzung [hh]:mm
02.08.2018 11:29:45
Berg
Tausend Dank Daniel, jetzt funktionierts genau so wie es soll :-)
Echt stark, danke!!!
AW: Textbox Begrenzung [hh]:mm
02.08.2018 14:34:19
Berg
Jetzt muss ich nochmal nachhaken. Der Inhalt der Textbox wird jetzt wie gewollt in eine Zelle geschrieben. Das Problem ist, ich kann die Stunden und Minuten nun nicht aufsummieren weil er das Format nicht annimmt.
Gespeichert wird mit:
Tabelle3.Cells(lZeile, 5).Value = TextBox3
Tabelle3.Cells(lZeile, 5).NumberFormat = "[hh]:mm"
AW: Textbox Begrenzung [hh]:mm
02.08.2018 15:03:25
Daniel
Hi
naja wie schon geschrieben, Excel kann Zeitformate nur bis 24 Stunden erkennen, weil Excel mit Uhrzeiten arbeitet und nicht mit Zeilt als Mengenbegriff.
du müsstest hier den Textboxinhalt selber umrechnen bevor du ihn zurückschreibst:
Cells(..).Value = Split(Textbox1.text, ":")(0) / 24 + Split(Textbox1.Text, ":")(1) / 3600
Gruß Daniel
Anzeige
AW: Textbox Begrenzung [hh]:mm
02.08.2018 08:01:04
Daniel
Hi
If right(textbox1.Text, 4) like "#:[0-5]#" and isnumeric(split(textbox1.Text, ":")(0)) Then
Gruß Daniel
AW: Textbox Begrenzung [hh]:mm
02.08.2018 08:01:54
JoWE
Hallo,
Du könntest die zulässigen Zeichen auch bereits während der Eingabe limitieren:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 58
Case Else
KeyAscii = 0
End Select
End Sub
Gruß
Jochen
AW: Textbox Begrenzung [hh]:mm
02.08.2018 08:02:30
Matthias
Hallo
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 58
Case Else: KeyAscii = 0
End Select
End Sub

Lässt nur Zahlen und Doppelpunkt zu
Gruß Matthias
Anzeige
AW: Textbox Begrenzung [hh]:mm
02.08.2018 08:05:54
Daniel
Ja, aber es darf nur ein Doppelpunkt eingegeben werden und dieser muss an der richtigen Stelle sitzen.
Außerdem muss die Zahl nach dem Doppelpunkt kleiner 60 sein.
Dh die nachträgliche Prüfung beim verlassen der Textbix erspart das nicht.
Gruß Daniel
schon wieder Geltungsbedürfnis ?
02.08.2018 08:17:13
Matthias
ENDE

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige