Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
352to356
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
352to356
352to356
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige