Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
792to796
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
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Rechnen mit Zeiten in TextBox?
27.08.2006 10:08:48
Kasimir
Hallo Leute,
einen schönen Sonntag wünsche ich. Ich hätte da mal eine Frage zum Rechnen mit Zeiten in TextBoxen. Ich möchte eine monatliche Arbeitszeit errechnen. Dazu habe ich in einer UserForm 3 Textfelder. In TextBox1 werden die Arbeitstage, in TextBox2 wird die Wochensollarbeitszeit im Format h:mm eingetragen. In TextBox3 soll mir die monatlichen Sollstunden nach der Formel "(TextBox2 /5)*TextBox1" berechnet und im Format h:mm angezeigt werden. Als Beispiel: in TextBox1 steht 30 für 30 Tage, in TextBox2 steht 38:50 für 38,5 Std. In TextBox3 soll nun der Wert 233:00 erscheinen. Das bekomme ich aber nicht hin, darum meine Frage: Wie kann ich das realisieren?
Gruß,
Kasimir

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

Betreff
Datum
Anwender
Anzeige
AW: Rechnen mit Zeiten in TextBox?
27.08.2006 18:31:10
Peter
Hallo Kasimir,
schau einmal ob es das ist, was du möchtest:
https://www.herber.de/bbs/user/36195.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
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

Anzeige
AW: Rechnen mit Zeiten in TextBox?
27.08.2006 20:11:56
Kasimir
Hallo Peter, hallo Franz,
danke Euch für Eure Lösungen. Die Lösung von Franz brint bei mir einen Laufzeitfehler. Die Lösung von Peter ist aber die richtige Lösung. Allerdings hätte ich da noch eine Frage zu dem errechneten Wert. Mal als Beispiel:
Eingabe in UserForm:
TextBox1(Arbeitstage) = 10
TextBox2(Wochensollzeit) = 8:25
Ergebnis in TextBox3 = 84:17
Eingabe in Tabellenblatt
Zelle A1 = 10
Zelle B1 = 8:25
Ergebnis in Zelle C1 = 84:10
Wie ersichtlich bringen beide Berechnungen verschiedene Ergebnisse. Kann mir jemand da einen Tipp geben, warum das so ist?
Danke nochmal,
Kasimir
Anzeige
AW: Rechnen mit Zeiten in TextBox?
27.08.2006 22:12:39
fcs
Hallo Kasimir,
mit folgender Anpassung kann meine Funktion auch Wochenarbeitszeiten 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, InStr(1, WochenSollzeit, ":") - 1)) + _ CDbl(Mid(WochenSollzeit, InStr(1, WochenSollzeit, ":") + 1, 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
Die Abweichungen Userform/Tabelle sind meiner Meinung nach auf einen Fehler in Peter's Formel zurückzuführen.Die als Ergebnis dargestellte Zahl ist die Stundenzahl in dezimaler Form mit Doppelpunkt als Trennzeichen. Peter's Formel für die Textbox3 müsste wie folgt sein:

TextBox3.Value = Format(Int(iZeit / 5 * iTage / 60) + (iZeit / 5 * iTage / 60 - _
Int(iZeit / 5 * iTage / 60)) * 60 / 100, "#0.00")

Allerdings kommt bei mir mit deinen Eingaben auch ein völlig anderes Ergebnis heraus:
Tabellenblattname: Test
A             B                 C
1  Tage  WochenSollzeit   MonatsSollzeit
2    10            8:25            16:50
Benutzte Formeln:
C2:  =B2/5*A2

In Zelle B2 ist die Eingabe eine Zeiteingabe (08:25:00). Die Zellen B2 und C2 sind mit dem benutzerdefinierten Format [h]:mm formatiert.
Gruss
Franz
Anzeige
AW: @fcs
28.08.2006 11:41:32
Peter
Hallo Franz,
du hast recht, meine Formel war ein Schnellschuss, deine ist richtig!
Viele Grüße Peter

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige