Hallo,
Ich habe zwei Textboxen, mit Zeit angaben.
Eine ist unter 24 Std (22:10).
Die Zweite ist über 24 Std (25:10)
Wie kann man die Differenz von 3 Std errechnen?
Wobei inder zweiten Textbox die Zeit 25:10 nicht als 1:10 sondern als 25:10 angeben werden muß!
Hat da Jemand eine idee?
Danke gruß fred
Hallo,
Wobei inder zweiten Textbox die Zeit 25:10 nicht als 1:10
sondern als 25:10 angeben werden muß!
Wenn Du Werte als Zeit behandelst, werden unzulässige Werte abgewiesen.
Wenn Du eine Zeit: 25:10 anzeigen möchtest, musst Du die Funktionen zum Rechnen selbst schreiben, dabei unterstützt Dich VB nicht.
Gruß Rainer
Hallo,
Wenn Du eine Zeit: 25:10 anzeigen möchtest, musst Du die
Funktionen zum Rechnen selbst schreiben, dabei unterstützt
Dich VB nicht.
wie soll der code aussehen, hab schon im google gesucht ohne erfolg.
gruß fred
Hallo,
wie soll der code aussehen, hab schon im google gesucht ohne
erfolg.
klar, so etwas hat vor Dir auch noch Niemand gebraucht.
Wer will schon 25:36 Uhr anzeigen. 
Nim den untenstehenden Code. Für Addition soll das reichen.
Wenn Du Subtraktion auch noch brauchst, sollte es Dir sicher gelingen, den Code umzuschreiben.
Gruß Rainer
Private Function TmAdd(ByVal t1 As String, ByVal t2 As String) As String
Dim p1 As Integer, p2 As Integer
Dim h1 As Integer, h2 As Integer
Dim m1 As Integer, m2 As Integer
Dim Hr As Integer, Mr As Integer
If InStr(1, t1, ":") 0 And InStr(1, t2, ":") 0 Then
p1 = InStr(t1, ":")
p2 = InStr(t2, ":")
h1 = Val(Mid(t1, 1, p1))
h2 = Val(Mid(t2, 1, p2))
m1 = Val(Mid(t1, p1 + 1, Len(t1) - p1))
m2 = Val(Mid(t2, p2 + 1, Len(t2) - p2))
Hr = h1 + h2
Mr = m1 + m2
If Mr \>= 60 Then
Mr = Mr - 60
Hr = Hr + 1
End If
TmAdd = CStr(Hr) + ":" + Right("00" + CStr(Mr), 2)
Else
TmAdd = "Formatfehler"
End If
End Function
Aufgerufen wird die Funktion etwa so:
Ergebnis = TmAdd("23:45", "2:36")
Ich habe zwei Textboxen, mit Zeit angaben.
Eine ist unter 24 Std (22:10).
Die Zweite ist über 24 Std (25:10)
Wie kann man die Differenz von 3 Std errechnen?
Hallo Fred,
in der Tabelle sind drei Txtboxen.
Sub tt()
With Worksheets("Tabelle1")
.Range("A1:A2,B1").NumberFormat = "[hh]:mm"
.Range("A1") = .TextBox1.Text
.Range("A2") = .TextBox2.Text
.Range("B1").Formula = "=A2-A1"
.TextBox3.Text = Hour(.Range("B1")) & ":" & Minute(.Range("B1"))
.Range("A1:A2,B1").ClearContents
End With
End Sub
Gruß
Reinhard
Hallo Reinhard,
Die Zweite ist über 24 Std (25:10)
.Range(„A1:A2,B1“).NumberFormat = „[hh]:mm“
VBA lässt 25:10 Uhr zu? Die Anzeige einer Zeit, die es nicht gibt?
Hast Du das getestet? In VB6 geht das nicht, ungültige Werte werden abgewiesen.
Gruß Rainer
Hallo Rainer,
Wer will schon 25:36 Uhr anzeigen. 
och, einige schon, z.B. bei einem Countdownzähler.
Der quasi zählt bzw. anzeigt, Noch
x Stunden und y Minuten bis zu einem Ereignis. Undman will halt das so angezeigt haben und nicht noch
z Tage x Stunden y Minuten.
Mit
Textbox1: 22:12
Textbox2: 23:10 bzw. 25:10
klappt nachfolgender Code (in Vba).
Sicher, wenn die Stunden in TB2 nur einstellig sind versagt noch der Code, aber ist eher ein zweitrangiges Problem und leicht zu ändern.
Sub tt3()
With Worksheets("Tabelle1")
If IsNumeric(Left(.TextBox2.Text, 2)) Then
If CInt(Left(.TextBox2.Text, 2))
Gruß
Reinhard
VBA lässt 25:10 Uhr zu? Die Anzeige einer Zeit, die es nicht
gibt?
Hast Du das getestet? In VB6 geht das nicht, ungültige Werte
werden abgewiesen.
Hallo Rainer,
ja, war/ist getestet:
http://www.bilder-space.de/show.php?file=26.09vvoVLt…
Dafür sorgen diese rechteckigen Klammern beim Format *schätz*
Gruß
Reinhard
Hallo Rainer
Private Function TmAdd(ByVal t1 As String, ByVal t2 As String)
As String
Dim p1 As Integer, p2 As Integer
Dim h1 As Integer, h2 As Integer
Dim m1 As Integer, m2 As Integer
Dim Hr As Integer, Mr As Integer
If InStr(1, t1, „:“) 0 And InStr(1, t2, „:“) 0 Then
p1 = InStr(t1, „:“)
p2 = InStr(t2, „:“)
h1 = Val(Mid(t1, 1, p1))
h2 = Val(Mid(t2, 1, p2))
m1 = Val(Mid(t1, p1 + 1, Len(t1) - p1))
m2 = Val(Mid(t2, p2 + 1, Len(t2) - p2))
Hr = h1 + h2
Mr = m1 + m2
If Mr >= 60 Then
Mr = Mr - 60
Hr = Hr + 1
End If
TmAdd = CStr(Hr) + „:“ + Right(„00“ + CStr(Mr), 2)
Else
TmAdd = „Formatfehler“
End If
End Function
Aufgerufen wird die Funktion etwa so:
Ergebnis = TmAdd(„23:45“, „2:36“)
Funktioniert bestens danke
Danke fred