auf einer userform möchte ich in einem Textfeld nur zeiteingaben zulassen (format hh:mm)
wie gelingt das ?
besten dank für die Unterstützung
pascal
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox1
If IsDate(.Text) Then If CDate(.Text)
beachte: wenn du mit Frames arbeitest, wird das Exit-Event der TextBox nicht ausgelöst, wenn du nach der Eingabe in die TextBoxbox direkt ein Steuerelement in einem anderen Frame anklickst, denn dann wird das Exit-Event des Frames aktiviert.Um in einem Textfeld nur Zeitangaben im Format hh:mm
zuzulassen, kannst du die folgende VBA-Lösung verwenden. Diese Methode setzt voraus, dass du eine UserForm in Excel erstellt hast und ein Textfeld namens TextBox1
hinzugefügt hast.
Öffne den Visual Basic for Applications (VBA) Editor (ALT + F11).
Navigiere zu deiner UserForm und wähle das Textfeld TextBox1
aus.
Füge den folgenden Code in das Code-Fenster der UserForm ein:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
If Len(TextBox1.Text) = 4 Then
TextBox1 = Format(Left(TextBox1.Text, 2) & ":" & Right(TextBox1.Text, 2), "hh:mm")
End If
End Sub
Schließe den VBA-Editor und teste deine UserForm.
Mit diesem Code wird sichergestellt, dass, wenn der Benutzer vier Ziffern eingibt, diese automatisch in das Zeitformat hh:mm
umgewandelt werden.
Fehler: Das Exit-Event wird nicht ausgelöst.
Fehler: Eingaben werden nicht richtig formatiert.
TextBox1
).Es gibt verschiedene Ansätze, um nur Zeitangaben in einem Textfeld zuzulassen:
DTPicker verwenden:
dtpTime
. Dieser bietet bereits eine integrierte Prüfung und stellt sicher, dass nur gültige Zeitwerte eingegeben werden können.Comboboxen nutzen:
Diese Methoden sind oft effektiver, da sie die Eingabemöglichkeiten einschränken und somit Fehler vermeiden.
Hier ein einfaches Beispiel, wie du verschiedene Methoden zur Eingabe von Zeit in einer UserForm implementieren kannst:
DTPicker Beispiel:
Füge einen DTPicker namens DTPicker1
zur UserForm hinzu und stelle sicher, dass das Format auf dtpTime
gesetzt ist.
Combobox Beispiel:
Erstelle zwei Comboboxen, ComboBoxStunden
und ComboBoxMinuten
, und fülle sie wie folgt:
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 0 To 23
ComboBoxStunden.AddItem Format(i, "00")
Next i
For i = 0 To 59
ComboBoxMinuten.AddItem Format(i, "00")
Next i
End Sub
InputMask
für Textfelder, um die Eingabe von Zeitangaben weiter zu beschränken.1. Wie kann ich sicherstellen, dass die Eingabe nur Zahlen sind?
Um sicherzustellen, dass nur Zahlen eingegeben werden, kannst du den KeyPress
-Event der TextBox verwenden und nicht-numerische Eingaben ignorieren.
2. Wie kann ich das Format der Zeitangaben ändern?
Um das Format zu ändern, kannst du den Format
-Befehl in deinem VBA-Code anpassen, z.B. Format(TextBox1.Text, "hh:mm:ss")
für Stunden, Minuten und Sekunden.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen