Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Format hh:mm


Betrifft: Format hh:mm von: Berg
Geschrieben am: 01.08.2018 11:03:26

Hallo,

ich bitte um Hilfe bei der Formatierung von Werten.
Über eine Userform gebe ich für eine Stundenerfassung die monatliche Arbeitszeit in Form von z.B. 40:00 Stunden pro Monat ein.

Dabei prüfe ich direkt in der Textbox ob die Werte richtig eingeben werden über:

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox3 = "" Then Exit Sub
If Not IsDate(Me.TextBox3) Then
MsgBox ("Eingabe ist nicht vom Type Time!")
TextBox3.BackColor = RGB(100, 100, 199)
Else
TextBox3.BackColor = RGB(255, 255, 255)
TextBox3 = Format(TextBox3, "hh:mm")
End If
End Sub
Ich glaube dass "isDate" hier falsch ist da ich nicht über die 24:00 hinaus komme. Gibt es hier irgendwas mit "Time" oder so?

Wenn ich die Daten dann in der Tabelle abspeicher, möchte ich dass der Eingabewert aus der Textbox auch im Format 40:00 in die Zelle geschrieben wird (weil die Stunden dann später summiert werden).
Dies hab ich wie folgt probiert aber damit komme ich auch nicht über 24:00 Stunden hinweg (Whs. das falsche Format)

Tabelle3.Cells(lZeile, 5).Value = CDate(TextBox3)
Tabelle3.Cells(lZeile, 5).NumberFormat = "hh:mm"

Weis hier jemand wie man das richtig macht?
Vorab allerbesten Dank für die Hilfe!

VG Berg

  

Betrifft: AW: Format hh:mm von: Hajo_Zi
Geschrieben am: 01.08.2018 11:09:33

Tabelle3.Cells(lZeile, 5).NumberFormat = "[hh]:mm"

da über 24 Stunden.
Isdate ist korrekt.

GrußformelHomepage

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.


  

Betrifft: AW: Format hh:mm von: Luschi
Geschrieben am: 01.08.2018 11:24:45

Hallo Hajo,

schade, daß Dich Infos über dieses Thema in Excel-Büchern nicht die Bohne interessieren,
denn dann wüßtest Du:
Tabelle3.Cells(lZeile, 5).NumberFormat = "[h]:mm"
korrekt ist.
siehe: 'Excel programmieren' von Michael Kofler, Ralf Nebelo, Hanser Verlag, 2014, Seite 235.

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Format hh:mm von: Berg
Geschrieben am: 01.08.2018 11:33:45

Okay, erstmal danke.

Und was muss ich in meiner Vorabprüfung (Code unten) ändern sodass er mehr als 24:00 Stunden zulässt?

Weil wenn ich schreibe:
TextBox3 = Format(TextBox3, "[hh]:mm") --> komme trotzdem nicht über 24:00 Stunden
TextBox3 = NumberFormat(TextBox3, "[hh]:mm") --> Fehler!

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox3 = "" Then Exit Sub
If Not IsDate(Me.TextBox3) Then
MsgBox ("Eingabe ist nicht vom Type Time!")
TextBox3.BackColor = RGB(100, 100, 199)
Else
TextBox3.BackColor = RGB(255, 255, 255)
TextBox3 = Format(TextBox3, "hh:mm")
End If
End Sub



  

Betrifft: AW: Format hh:mm von: Hajo_Zi
Geschrieben am: 01.08.2018 11:54:51

schreibe es in die Zelle und lese .Text aus

Gruß Hajo


  

Betrifft: AW: Format hh:mm von: Berg
Geschrieben am: 01.08.2018 12:31:15

Hä? Was soll ich machen?

Ich will eigentlich nur dass in TextBox3 nichts ausser hh:mm eingetragen wird.
Das möchte ich abfangen. Und mit hh:mm will ich auch über 24:00 Stunden hinauskommen z.B. 103 Stunden.


  

Betrifft: AW: Format hh:mm von: Berg
Geschrieben am: 01.08.2018 13:25:46

Weis jemand wie das geht??


  

Betrifft: AW: Format hh:mm von: Rudi Maintaire
Geschrieben am: 01.08.2018 13:57:24

Hallo,
eine Möglichkeit:

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  Dim tmp, bolNoTime As Boolean
  If TextBox3 = "" Then Exit Sub
  tmp = Split(TextBox3, ":")
  If UBound(tmp) = 1 Then
    bolNoTime = Val(tmp(1)) > 60
  Else
    bolNoTime = True
  End If
  If bolNoTime Then
    MsgBox ("Eingabe ist keine Zeit!")
    TextBox3.BackColor = RGB(100, 100, 199)
    Cancel = True
  Else
    TextBox3.BackColor = RGB(255, 255, 255)
  End If
End Sub

Gruß
Rudi


  

Betrifft: AW: Format hh:mm von: Berg
Geschrieben am: 01.08.2018 14:22:35

Hallo Rudi,

super vielen Dank für deinen Code. Kann man noch irgendwie ergänzen wenn man eingibt z.B: "1:" dass er dann "01:00" oder aus "2:2" dann "02:20" beim verlassen der Textbox draus macht.


  

Betrifft: AW: Format hh:mm von: Hajo_Zi
Geschrieben am: 02.08.2018 14:48:07

Ein Beitrag in offen reicht, wie schon mitgeteilt.

Gruß Hajo


Beiträge aus dem Excel-Forum zum Thema "Format hh:mm"