Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: in Textfeld nur Zeitangabe zulassen

in Textfeld nur Zeitangabe zulassen
08.08.2017 14:57:02
Pascal
hallo allerseits
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
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: in Textfeld nur Zeitangabe zulassen
08.08.2017 15:38:50
Frank
Hallo Pascal!
So geht es, da brauchst du oder der User der mit deiner Datei arbeitet nicht einmal den Doppelpunkt mit eingeben.
On Error Resume Next
If Len(TextBox1.Text) = 4 Then
TextBox1 = Format(Left(TextBox1, 2) & ":" & Right(TextBox1, 2), "hh:mm")
End If
TextBox ggf. anpassen!
Konnte ich helfen?
Gruß Frank H.
Anzeige
AW: in Textfeld nur Zeitangabe zulassen
08.08.2017 16:01:25
Pascal
GENIAL !
genau was ich suchte !
herzlichen Dank !
abcd? 7799?
08.08.2017 16:13:51
{Boris}
Hi pascal,
will sagen: damit fängst Du aber noch keine unzulässigen Eingaben ab.
VG, Boris
Wieso genial? Eher nicht...
09.08.2017 09:20:25
EtoPHG
Hallo Pascal,
Der Vorschlag von Frank lässt viel zu viele Fehlermöglichkeiten von Eingaben zu.
Eine Textbox ist IMHO das falsche Control-Element.
Ich würde entweder eine DTPicker (Format = dtpTime) einsetzen, denn hier liegt alles schon vor (Prüfung und Variablenformat).
Oder aber 2 Comboboxen (Style = fmStyleDropDownList), wobei die erste Werte von 00..23 und die zweite von 00..59 zulässt.
Gruess Hansueli
Gruess Hansueli
Anzeige
AW: in Textfeld nur Zeitangabe zulassen
09.08.2017 10:18:35
Daniel
Hi
schreibe folgende Prüfung ins Exit-Event der TextBox:
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.
aber Frames braucht man eh selten, in den meisten Fällen, wenn man nur einen Rahmen braucht, reicht ein Label mit Rahmen und transparentem Hintergrund
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Nur Zeitangaben in Textfeldern zulassen


Schritt-für-Schritt-Anleitung

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.

  1. Öffne den Visual Basic for Applications (VBA) Editor (ALT + F11).

  2. Navigiere zu deiner UserForm und wähle das Textfeld TextBox1 aus.

  3. 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
  4. 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.


Häufige Fehler und Lösungen

  • Fehler: Das Exit-Event wird nicht ausgelöst.

    • Lösung: Wenn du mit Frames arbeitest, kann das Exit-Event der TextBox nicht aktiviert werden, wenn du direkt ein Steuerelement in einem anderen Frame anklickst. Stelle sicher, dass du keine Frames verwendest, oder passe den Code entsprechend an.
  • Fehler: Eingaben werden nicht richtig formatiert.

    • Lösung: Überprüfe, ob der Code korrekt in das Exit-Event eingefügt wurde und dass die TextBox den richtigen Namen hat (TextBox1).

Alternative Methoden

Es gibt verschiedene Ansätze, um nur Zeitangaben in einem Textfeld zuzulassen:

  1. DTPicker verwenden:

    • Setze einen DTPicker mit dem Format dtpTime. Dieser bietet bereits eine integrierte Prüfung und stellt sicher, dass nur gültige Zeitwerte eingegeben werden können.
  2. Comboboxen nutzen:

    • Verwende zwei Comboboxen:
      • Die erste für Stunden (Werte von 00 bis 23)
      • Die zweite für Minuten (Werte von 00 bis 59)

Diese Methoden sind oft effektiver, da sie die Eingabemöglichkeiten einschränken und somit Fehler vermeiden.


Praktische Beispiele

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

Tipps für Profis

  • Verwende den InputMask für Textfelder, um die Eingabe von Zeitangaben weiter zu beschränken.
  • Teste dein UserForm gründlich, um sicherzustellen, dass alle Eingabemöglichkeiten korrekt behandelt werden.
  • Halte deinen VBA-Code gut dokumentiert, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige