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

Forumthread: Textbox auf Uhrzeit prüfen

Textbox auf Uhrzeit prüfen
12.08.2016 13:43:52
Nicolai
Hallo zusammen,
ich habe eine TextBox in einer Userform in die eine Uhrzeit eingetragen wird "hh:mm".
Die TextBox habe ich einer Variablen zugewiesen:
Public wert1 As Date
wert1 = UserForm2.TextBox2
Nun möchte ich prüfen ob "wert1" eine Uhrzeit ist. Kann mir jemand auf die Sprünge helfen, wie ich zur Lösung komme?
Vielen Dank & Grüße,
Nicolai
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox auf Uhrzeit prüfen
12.08.2016 14:24:24
Matthias
Hallo
Probiers mal so, ab das klappt
Option Explicit
Public wert1 As Date
Private Sub CommandButton1_Click()
On Error GoTo Fehler
wert1 = UserForm2.TextBox2
If IsDate(wert1) And InStr([wert1], ":") > 0 Then MsgBox "Ja es ist eine Zeit"
Fehler:
End Sub
Gruß Matthias
Anzeige
AW: Textbox auf Uhrzeit prüfen
12.08.2016 15:29:14
Nicolai
Super, vielen dank. Funktioniert.
AW: Textbox auf Uhrzeit prüfen
15.08.2016 12:20:22
Nicolai
Ich hätte noch eine Frage zu diesem Marko.
Ich will das oben aufgeführte Makro nun auch für eine zweite TextBox(wert2) ausführen, ist es irgendwie möglich das zusammen zu fassen?
Vielen Dank & Grüße,
Nicolai
AW: Textbox auf Uhrzeit prüfen
15.08.2016 12:56:45
Werner
Hallo Nicolai,
wie meinst du das?
Zwei TextBoxen auf der gleichen UserForm auf Uhrzeit prüfen?
Nur wenn in beiden gültige Uhrzeit dann soll was passieren?
Gruß Werner
Anzeige
AW: Textbox auf Uhrzeit prüfen
15.08.2016 13:26:51
Nicolai
Hallo Werner,
Ja genau, ich habe zwei TextBoxen in einer UserForm, welche beide auf Uhrzeit geprüft werden sollen. Wenn beide gültig sind soll er mir ein anderes Makro ausführen und wenn nicht, eine MsgBox ausgeben.
Vielen Dank & Grüße,
Nicolai
AW: Textbox auf Uhrzeit prüfen
15.08.2016 13:41:16
Werner
Hallo Nicolai,
ungetestet
Option Explicit
Public wert1 As Date
Public wert2 As Date
Private Sub CommandButton1_Click()
On Error GoTo Fehler
wert1 = UserForm2.TextBox2
wert2 = UserForm2.TextBox3 'anpassen
If IsDate(wert1) And InStr([wert1], ":") > 0 And IsDate(wert2) And InStr([wert2], ":") > 0 Then
MsgBox "Ja es ist eine Zeit in beiden Textboxen"
Else
MsgBox "Keine gültige Zeit in TextBox 2 oder TextBox 3"
End If
Fehler:
End Sub
Gruß Werner
Anzeige
AW: Textbox auf Uhrzeit prüfen
15.08.2016 14:30:06
Nicolai
Hallo Werner,
ohne am Makro etwas zu verändern, funktioniert es.
Allerdings will ich beim ersten MsgBox ein Makro einbauen, dies funktioniert leider nicht oder ich habe es falsch eingebaut. Ich habe meine Beispielsdatei mal angehängt:
https://www.herber.de/bbs/user/107630.xlsm
Mein Makro führt er zwar nun aus aber wenn ich eine falsche Uhrzeit einfüge, dann kommt die Fehlermeldung leider nicht.
Vielen Dank & Grüße,
Nicolai
Anzeige
AW: Textbox auf Uhrzeit prüfen
15.08.2016 17:43:14
Werner
Hallo Nicolai,
das Option Explicit hat schon seinen Sinn. Da wirst du angemeckert, wenn du nicht alle Variablen definiert hast. Das war bei dir der Fall, du hast dann mal ganz großzügig das Option Explicit auskommentiert anstatt deine Variablen zu definieren.
Schau dir mal die hochgeladene Datei an. Das On Error habe ich auch rausgeschmissen.
https://www.herber.de/bbs/user/107636.xlsm
Gruß Werner
Anzeige
AW: Textbox auf Uhrzeit prüfen
16.08.2016 10:48:11
Nicolai
Hallo Werner,
das Makro funktioniert nun wunderbar, vielen dank.
Viele Grüße,
Nicolai
AW: Gerne u. Danke für die Rückmeldung. o.w.T
16.08.2016 13:05:17
Werner
;

Forumthreads zu verwandten Themen

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

Textbox auf Uhrzeit prüfen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine TextBox auf gültige Uhrzeiten zu prüfen, kannst Du das folgende VBA-Makro verwenden. Dieses Beispiel geht davon aus, dass Du zwei TextBoxen in einer UserForm hast:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel.

  2. Erstelle eine UserForm mit zwei TextBoxen (TextBox2 und TextBox3) und einem CommandButton.

  3. Füge den folgenden Code in das Code-Fenster der UserForm ein:

    Option Explicit
    Public wert1 As Date
    Public wert2 As Date
    
    Private Sub CommandButton1_Click()
       wert1 = UserForm2.TextBox2
       wert2 = UserForm2.TextBox3
    
       If IsDate(wert1) And InStr([wert1], ":") > 0 And IsDate(wert2) And InStr([wert2], ":") > 0 Then
           MsgBox "Ja, es ist eine Zeit in beiden TextBoxen"
           ' Hier kannst Du das gewünschte Makro aufrufen
       Else
           MsgBox "Keine gültige Zeit in TextBox 2 oder TextBox 3"
       End If
    End Sub
  4. Teste die UserForm, indem Du gültige und ungültige Uhrzeiten eingibst.


Häufige Fehler und Lösungen

  • Fehler: "Typmissbrauch" oder "Fehler beim Ausführen"
    Stelle sicher, dass die TextBoxen korrekt benannt sind und dass die Eingaben im richtigen Format (hh:mm) vorliegen.

  • Problem: MsgBox wird nicht angezeigt
    Überprüfe, ob die Variablen wert1 und wert2 richtig definiert wurden. Achte darauf, dass das Option Explicit am Anfang steht, um sicherzustellen, dass alle Variablen deklariert sind.


Alternative Methoden

Wenn Du keine UserForms verwenden möchtest, kannst Du eine einfache Excel-Tabelle nutzen und die Datenvalidierung einsetzen, um sicherzustellen, dass nur gültige Uhrzeiten eingegeben werden. Du kannst eine benutzerdefinierte Formel in der Datenvalidierung verwenden:

  1. Wähle die Zellen aus, in denen die Uhrzeiten eingegeben werden sollen.
  2. Gehe zu "Daten" > "Datenvalidierung".
  3. Wähle "Benutzerdefiniert" und gib folgende Formel ein:
    =ISTZEIT(A1)

    (Ersetze A1 durch die erste Zelle des ausgewählten Bereichs.)


Praktische Beispiele

Hier ist ein Beispiel für eine komplexere Logik in VBA, bei der Du mehrere Bedingungen prüfen und verschiedene Aktionen durchführen kannst:

Private Sub CommandButton1_Click()
    On Error GoTo Fehler
    wert1 = UserForm2.TextBox2
    wert2 = UserForm2.TextBox3

    If IsDate(wert1) And IsDate(wert2) Then
        If CDate(wert1) > CDate(wert2) Then
            MsgBox "Die erste Uhrzeit ist später als die zweite."
        Else
            MsgBox "Die erste Uhrzeit ist früher oder gleich der zweiten."
        End If
    Else
        MsgBox "Bitte gib gültige Uhrzeiten ein."
    End If
Fehler:
    MsgBox "Ein Fehler ist aufgetreten."
End Sub

Tipps für Profis

  • Verwende Try-Catch-Logik: Wenn Du mit mehreren Fehlern in Deinem Code rechnest, kannst Du eine Fehlerbehandlung implementieren, um den Code robuster zu machen.

  • Optimiere Deine UserForm: Füge Labels hinzu, um den Benutzern zu erklären, in welchem Format die Uhrzeit eingegeben werden soll.

  • Validiere Eingaben sofort: Du kannst die Validierung auch direkt beim Verlassen der TextBox durchführen, um sofortige Rückmeldungen zu geben.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Uhrzeiten von 00:00 bis 23:59 akzeptiert werden?
Du kannst die Eingabe in der TextBox während des Change-Events validieren und sicherstellen, dass sie im richtigen Format ist.

2. Was mache ich, wenn ich mehr als zwei TextBoxen prüfen möchte?
Erweitere das Makro, indem Du weitere Variablen hinzufügst und die Bedingungen entsprechend anpasst.

3. Warum zeigt die MsgBox nicht immer die erwartete Nachricht an?
Überprüfe Deine Bedingungen im Code, um sicherzustellen, dass sie korrekt formuliert sind. Ein einfacher Fehler in der Logik kann dazu führen, dass die Nachricht nicht angezeigt wird.

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