Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1092to1096
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
Uhrzeit HH:mm in TB anzeigen
k
Hallo
habe eine Userform mit einer Textbox (TB9) in der die Uhrzeit erfasst werden soll (hh:mm).
Dann beim speichern wird dieser Wert im Format:
.Cells(varRow, 6) = Format(CDate(TB9.Value), "hh:mm") ' Uhrzeit
gespeichert.
Beim wieder anzeigen jedoch - steht eine Dezimalzahl mit vielen Komma-Stellen drin ?
Warum keine Stundenanzeige - Was muss ich tun ?
Gruß
Kay
Der verwendete Code von Hajo für die Eingabe und Änderung der TB9 auf Uhrzeit:
' Ereignis, welches vor der Anzeige der Eingabe in der Textbox ausgeführt wird
Private Sub TB9_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("0") To Asc("9")       ' Prüfung ob Zahl
Case Asc(":")                   ' Prüfung ob Doppelpunkt
If Len(TB9) = 0 Then        ' Prüfung der Position, keine Eingabe vor der ersten  _
Zahl
KeyAscii = 0            ' Eingabe löschen
Else
'               nach dem 2. Doppelpunkt keinen weiteren Punkt zulassen
If Len(TB9) - Len(Application.Substitute(TB9, ":", "")) = 2 Then
KeyAscii = 0
ElseIf Len(TB9) > 1 Then
'                   keine 2 Doppelpunkte hintereinander, prüfen ob letztes Zeichen ein  _
Doppelpunkt ist
If Mid(TB9, Len(TB9), 1) = ":" Then KeyAscii = 0
Else
'                  hinter der ersten Zahl wurde ein Punkt eingegeben, was korrekt ist
KeyAscii = Asc(":")
End If
End If
Case Else                       ' alle anderen Eingaben löschen
KeyAscii = 0
End Select
End Sub
' Ereignis, welches nach der Eingabe ausgelöst wird im Anschluss nach ...KeyPress
Private Sub TB9_Change()
If BoEnter = True Then Exit Sub         ' Textbox wurde schon verlassen
If Len(TB9) = 2 Then               ' es wurden 2 Zeichen eingegeben
If InStr(TB9, ":") = 0 Then    ' prüfen ob schon ein Doppelpunkt eingegeben wurde
TB9 = TB9 & ":"            ' Doppelpunkt ergänzen
End If
'    ElseIf Len(TB9) = 5 Then           ' eingegebene Zeichenkette ist 5 Zeichen lang
'        If Len(TB9) - Len(Application.Substitute(TB9, ":", "")) 
' Ereignis, welches beim Verlassen ausgelöst wird
Private Sub TB9_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TB9  "" Then
BoEnter = True                                              ' damit das Change Ereignis  _
nicht ausgeführt wird
If Right(TB9, 1) = ":" Then                            ' das letzte Zeichen ist ein  _
Doppelpunkt
TB9 = Mid(TB9, 1, Len(TB9) - 1)          ' Doppelpunkt am Ende löschen
End If
If IsDate(TB9.Text) Then                               ' Prüfung ob die Eingabe ein  _
Datum ist
'       Prüfung ob Eingabe verschieden vom vorgegeben Format, dann Meldung
If Format(CDate(TB9.Value), "hh:mm")  TB9 Then
MsgBox "Die Uhrzeit wurde übersetzt"
End If
TB9 = Format(CDate(TB9.Value), "hh:mm")    ' Eingabe ins richtige Format umwandeln
Else
TB9 = ""                                           ' Eingabe löschen da kein Datum
Cancel = True                                           ' Focus auf das gleiche  _
Steuerelement
End If
BoEnter = False                                             ' Variable wieder zurü _
cksetzen für nächste Eingabe
End If
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Uhrzeit HH:mm in TB anzeigen
03.08.2009 12:43:28
Hajo_Zi
Hallo Kay,
Du schreibst Text in die Zelle. Das Ergebnis von Format ist Text. Formatiere die Zelle und benutze Cdate(textbox9)

AW: Uhrzeit HH:mm in TB anzeigen
03.08.2009 14:24:02
k
Hi Hajo,
habe getan, was Du mir geschrieben hast. Zellen in der Tabelle mit hh:mm formatiert.
in der Speicherprozedure (s.u.) auf Cdate gegangen und in der Tabelle sieht es gut aus.
Lese ich die Daten wieder ein, stehen aber immernoch Dezimalzahlen ?!
Gruß
Kay
Private Sub CB_Speichern_Click()
With Sheets("PBE")
varRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
On Error Resume Next
If IsNumeric(varRow) And CB1  "" Then
.Cells(varRow, 1) = "=Row()-1"                                       ' ID = Zeilennr. - 1
.Cells(varRow, 2) = CB1 * 1                                            ' AV-Nr.
.Cells(varRow, 3) = TBO.Text                                           ' Objektinformation
.Cells(varRow, 4) = Worksheets("Basic").Cells(3, 3)                  ' ADM
.Cells(varRow, 5) = CDate(TB8)                                       ' Datum
.Cells(varRow, 6) = CDate(TB9)                                       ' Uhrzeit
.Cells(varRow, 7) = CDate(TB10)                                     ' n.T. Datum
.Cells(varRow, 8) = CDate(TB11)                                     ' n.T. Uhrzeit
.Cells(varRow, 9) = CDate(TB12)                                     ' Endtermin Datum
.Cells(varRow, 10) = CDate(TB13)                                   ' Endtermin Uhrzeit
.Cells(varRow, 11) = TB7.Text                                          ' Eintrag,  _
Bemerkung
.Cells(varRow, 12) = Format(CDate(TB13.Value), "dd.mm.yyyy hh:mm")     ' eingetragen am  _
Heute
End If
End With
Worksheets("PBE").Activate
Cells.EntireColumn.AutoFit
Worksheets("Start").Activate
End Sub

Anzeige
AW: Uhrzeit HH:mm in TB anzeigen
03.08.2009 14:25:27
Hajo_Zi
Hallo Kay,
beim einlesen solltest Du .Text benutzen, da es in der Zelle korrekt steht.
Gruß Hajo
AW: Uhrzeit HH:mm in TB anzeigen
03.08.2009 16:20:42
k
Hallo Hajo,
...lange gesucht, jetzt gefunden ;o) - Danke !
Gruß
Kay

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige