Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeitformat in textbox

Zeitformat in textbox
18.07.2004 21:03:55
Erich
Hallo Excelprofis,
habe wieder ein kleines problen:
ich möchte in meiner Userform Textbox eine Zeit eintragen z.b. 012356 in der Textbox sollte aber nach den eintrag das format so aussehen 01:23:56, anschließend will ich die zeit in die Tabelle1 eintragen und damit rechnen, wer kann mir bitte weiter helfen?
im vorraus danke für eure hilfe.
gruß erich
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeitformat in textbox zu 2
18.07.2004 21:06:02
Annett
Hallo Erich
zu 2 Range("A1")=Cdate(Textbox1)
Gruß Annett
AW: Zeitformat in textbox zu 2
18.07.2004 22:01:04
Erich
Danke Annett,
diesen teil konnte ich gleich umsetzen, danke
gruß
erich
Anzeige
AW: Zeitformat in textbox zu 2
18.07.2004 22:13:02
Klaus-Dieter
Hallo Erich,
versuche es mal so:
Private Sub TextBox1_Change() If Len(TextBox1.Text) = 6 Then TextBox1 = Format(Left(TextBox1, 2) & ":" & Mid(TextBox1, 3, 2) & ":" & Right(TextBox1, 2), "hh:mm:ss") End If Cells(1, 1) = CDate(TextBox1) End Sub
Gruß Klaus-Dieter

Anzeige
AW: Zeitformat in textbox zu 2
18.07.2004 22:16:28
Josef
Hallo Erich!
Probier das mal!
Option Explicit

Private Sub CommandButton1_Click()
[A1] = CDate(TextBox1)
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Eingabebeschränkung Textbox Uhrzeit mit autom. Doppelpunkt
'Format hh:mm:ss
Select Case Len(TextBox1)
Case 0
Select Case KeyAscii
Case 48 To 50
Case Else
KeyAscii = 0
End Select
Case 1
If Left(TextBox1, 1) = 2 Then
Select Case KeyAscii
Case 48 To 51
Case Else
KeyAscii = 0
End Select
Else
Select Case KeyAscii
Case 48 To 57
Case Else
KeyAscii = 0
End Select
End If
Case 2, 5
Select Case KeyAscii
Case 48 To 53, 58
If KeyAscii <> 58 Then TextBox1 = TextBox1 & ":"
Case Else
KeyAscii = 0
End Select
Case 3, 6
If Right(TextBox1, 1) = ":" Then
Select Case KeyAscii
Case 48 To 53
Case Else
KeyAscii = 0
End Select
End If
Case 4, 7
Select Case KeyAscii
Case 48 To 57
Case Else
KeyAscii = 0
End Select
Case Else
KeyAscii = 0
End Select
End Sub

Gruß Sepp
Anzeige
Danke
erich
Hallo Klaus- Dieter und Sepp
danke für die Schnelle antwort, es funktioniert danke
Danke
;
Anzeige
Anzeige

Infobox / Tutorial

Zeitformat in Textbox anpassen


Schritt-für-Schritt-Anleitung

Um das Zeitformat in einer Textbox in einer Excel Userform anzupassen, kannst du folgenden VBA-Code verwenden:

Private Sub TextBox1_Change()
    If Len(TextBox1.Text) = 6 Then
        TextBox1 = Format(Left(TextBox1, 2) & ":" & Mid(TextBox1, 3, 2) & ":" & Right(TextBox1, 2), "hh:mm:ss")
    End If
    Cells(1, 1) = CDate(TextBox1)
End Sub
  1. Öffne den VBA-Editor in Excel (ALT + F11).
  2. Füge ein Userform hinzu und platziere eine Textbox (TextBox1) darauf.
  3. Klicke doppelt auf die Textbox, um den Code-Editor für die TextBox1_Change-Ereignis zu öffnen.
  4. Kopiere den obigen Code in das Codefenster.
  5. Schließe den VBA-Editor und teste die Userform.

Dieser Code sorgt dafür, dass die Eingabe von 6 Ziffern (z.B. 012356) automatisch in das Format hh:mm:ss umgewandelt wird.


Häufige Fehler und Lösungen

  • Fehler: Die Zeit wird nicht richtig formatiert.

    • Lösung: Stelle sicher, dass die Eingabe genau 6 Ziffern hat. Der Code überprüft die Länge der Eingabe vor der Formatierung.
  • Fehler: Die Zeit wird nicht in die Zelle geschrieben.

    • Lösung: Überprüfe, ob die Zelle (hier A1) korrekt angesprochen wird. Du kannst die Zielzelle nach Bedarf anpassen.

Alternative Methoden

Eine alternative Methode zum Anpassen des Zeitformats könnte die Verwendung von KeyPress-Ereignissen sein, um die Eingabe direkt zu steuern:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case Len(TextBox1)
        Case 2, 5
            If KeyAscii <> 58 Then
                TextBox1 = TextBox1 & ":"
            End If
        Case Else
            If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
                KeyAscii = 0
            End If
    End Select
End Sub

Dieser Code fügt automatisch einen Doppelpunkt an den entsprechenden Stellen ein, während der Benutzer tippt.


Praktische Beispiele

  1. Beispiel: Du möchtest die Zeit 123456 eingeben. Nach der Eingabe wird die Textbox automatisch auf 12:34:56 formatiert.
  2. Beispiel: Du möchtest die Zeit 234501 eingeben. Nach der Eingabe wird die Textbox auf 23:45:01 formatiert und in die Zelle A1 geschrieben.

Tipps für Profis

  • Nutze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Teste dein VBA-Skript gründlich, um sicherzustellen, dass alle möglichen Eingaben korrekt verarbeitet werden.
  • Überlege, die Eingabe auf numerische Werte zu beschränken, um Eingabefehler von vornherein zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Zeit in einer anderen Zelle speichern? Du kannst die Zeile Cells(1, 1) = CDate(TextBox1) ändern, um eine andere Zelle auszuwählen, z.B. Cells(2, 1).

2. Was passiert, wenn ich weniger oder mehr als 6 Ziffern eingebe? Wenn die Eingabe weniger oder mehr als 6 Ziffern beträgt, wird das Format nicht angewendet. Du kannst zusätzliche Logik implementieren, um den Benutzer darauf hinzuweisen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige