AW: Rechnen mit Zeiten in TextBox?
27.08.2006 19:03:41
fcs
Hallo Kasimir,
leider kann Excel diese Zeiteingaben/Zeitausgaben in den Userforms nicht direkt mit Funktionen in Zahlenwerte umwandeln. Die als Text eingegeben Wochensollstunden müssen erst in Stunden und Minuten aufgebröselt und in Stundendezimalwerte umgewandelt werden.
In ähnlicherweise müssen dann die Monatssollstunden in eine entsprechenden Text umgewandelt werden.
In deinem Userform kannst du dies mit folgenden Makros, die du im Code des Userforms einfügst. Der Monatswert wird berechnet wenn in den Textboxen 1 und 2 Werte eingegeben sind. Jede Änderung der Arbeitstage berechnet die Monatsstunden neu. Werden die Wochensollstunden geändert, dann erfolgt die Neuberechnung erst wenn das Eingabefeld verlassen wird.
gruss
Franz
Private Sub TextBox1_Change()
Me.TextBox3.Value = Monatsstunden(Me.TextBox1.Value, Me.TextBox2.Value)
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Me.TextBox3.Value = Monatsstunden(Me.TextBox1.Value, Me.TextBox2.Value)
End Sub
Private Function Monatsstunden(Arbeitstage As String, WochenSollzeit As String) As String
Dim SollWoche As Double, SollMonat As Double
If Arbeitstage <> "" And WochenSollzeit <> "" Then
'Berechnung der Zeiten in Stunden (Dezimal)
SollWoche = CDbl(Mid(WochenSollzeit, 1, 2)) + CDbl(Mid(WochenSollzeit, 4, 2)) / 60
SollMonat = Val(Arbeitstage) * SollWoche / 5
'Ausgabe der Monats-Soll-Stunden im Format h:mm
Monatsstunden = Int(SollMonat) & ":" & Format((SollMonat - Int(SollMonat)) * 60, "00")
End If
End Function