Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem in Word

Forumthread: Problem in Word

Problem in Word
21.12.2003 21:32:18
Chris
Halli Hallo,

ich habe ein Problem in MS Word, ich möchte gerne Zeit berechnen dazu habe ich dieses VB Script:


Sub FFSundenMinutenBerechnen()
Dim oDoc As Document
Set oDoc = ActiveDocument
Ein = oDoc.FormFields("Anfang").Result
Aus = oDoc.FormFields("Ende").Result
If IsDate(Ein) And IsDate(Aus) Then
mm = DateDiff("n", TimeValue(Ein), TimeValue(Aus))
hmm = Format(TimeSerial(0, mm, 0), "hh:mm")
oDoc.FormFields("Arbeitszeit").Result = hmm
End If
End Sub


Es gibt insgesamt 3 Formularfelder:
Das erste: "Anfang" hier steht die Startzeit
Das zweite: "Ende" hier steht die Endzeit
Das dritte: "Arbeitszeit" hier stehen die Arbeitsstunden

Jetzt mein Problem:

Wenn ich in Formularfeld "Anfang" 13:00 schreibe
und in Formularfeld "Ende" 18:00 schreibe
kommt im Formularfeld "Arbeitszeit" 5:00 raus. Das ist ja auch richtig so, aber jetzt:

Wenn ich in Formularfeld "Anfang" 20:00 schreibe
und in Formularfeld "Ende" 01:00 schreibe
kommt im Formularfeld "Arbeitszeit" 19:00 raus.

Das Problem ist, es ist der mächste Tag. Was muss ich ändern, damit es funktioniert ?????? Ich habe keinen Plan in VB

Danke für Eure Hilfe

Chris
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem in Word
21.12.2003 23:27:18
DieterB
Hi Chris,
stelle doch Deine Frage im MS-Office-Forum

www.ms-office-forum.de

ich denke, da bist Du richtig

Gruß

DieterB
AW: Problem in Word; Lösung
22.12.2003 08:33:53
Nicolaus
Moin moin,
die Lösung:


Sub FFSundenMinutenBerechnen()
Dim oDoc As Document
Set oDoc = ActiveDocument
Ein = oDoc.FormFields("Anfang").Result
Aus = oDoc.FormFields("Ende").Result
If IsDate(Ein) And IsDate(Aus) Then
If Ein <= Aus Then
mm = DateDiff("n", TimeValue(Ein), TimeValue(Aus))
Else
mm = DateDiff("n", TimeValue(Ein), TimeSerial(24, 0, 0)) + DateDiff("n", TimeSerial(0, 0, 0), TimeValue(Aus))
End If
hmm = Format(TimeSerial(0, mm, 0), "hh:mm")
oDoc.FormFields("Arbeitszeit").Result = hmm
End If
End Sub


Der Trick liegt darin, im Falle eines Tageswechsels (Ein>Aus) die Differenzen zu Mitternacht zu berechnen und diese dann zu addieren.

Nicolaus
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige