Hallo,
bin neu hier.
Kann mir jemand den nachfolgenden VBA-Code analysieren?
Die Funktion macht nicht das, was ich will.
Public Function CalcDiffTime(ByVal TimeS, ByVal TimeE, ByVal TimeP)
If IsNull(TimeS) Or IsNull(TimeE) Then Exit Function
If TimeS > TimeE Then
TimeE = TimeE + 1 - Nz(TimeP, 0)
End If
CalcDiffTime = DateDiff("n", (TimeS), (TimeE)) / (60 * 24)
End Function
Danke
Hallo,
verrätst Du auch was die Funktion machen soll ?
Zitat von: Truckerling am Februar 20, 2017, 20:38:52bin neu hier.
Herzlich willkommen!
Zitat von: Truckerling am Februar 20, 2017, 20:38:52Die Funktion macht nicht das, was ich will.
Dann solltest du uns auch verraten, was du willst!
Programcode kann man übrigens mit dem
#-Button hier im Forum besser lesbar formatieren.
Also, die Funktion läuft im Ausdrucksgenerator zur Anzeige von Arbeitszeiten in einem Bericht.
TimeS ist die Startzeit, TimeE die Endzeit und TimeP die Pausenzeit.
Der Bereich TimeS bis TimeE abzüglich TimeP ergibt die Arbeitszeit.
Erforderlich wurde die Funktion durch die Variante, das bsp 20:00 begonnen wird und 03:00 am nächsten Tag geendet wird und dazwischen 1,0 Std Pause ist.
Das ist die Anforderung.
Leider erhalte ich als Ergebnis nur die Differenz von TimeS und TimeE. TimeP wird nicht abgezogen. Wo liegt der Fehler?
Danke soweit
hallo
liegt wahrscheinlich daran das Pause nur berücktsichtigt wird wenn Start grösser Ende ist.
probier halt mal
Public Function CalcDiffTime(ByVal TimeS, ByVal TimeE, ByVal TimeP)
If IsNull(TimeS) Or IsNull(TimeE) Then Exit Function
If TimeS > TimeE Then
TimeE = TimeE + 1
End If
CalcDiffTime = DateDiff("n", (TimeS), (TimeE - Nz(TimeP, 0))) / (60 * 24)
End Function
Funktioniert. Dankeschön.