Function Determine_Heures(ByVal Jour_Ref, ByVal Heure_Deb, ByVal Heure_Fin, ByVal Heure_Deb_Nuit_Ref#, ByVal Heure_Fin_Nuit_Ref#, ByVal Heure_Deb_Nuit_Dim_Ref#, ByVal Heure_Fin_Nuit_Dim_Ref#, ByVal Type_Retour%)
If Heure_Deb = "" Or Heure_Fin = "" Then Determine_Heures = "": Exit Function
Dim Heure_DebJ1#, Heure_FinJ1#, Heure_FinJ2#
Dim Heures_Jour_Std1#, Heures_Jour_Std2#, Heures_Nuit_Std1#, Heures_Nuit_Std2#
Dim Heures_Jour_Dim1#, Heures_Jour_Dim2#, Heures_Nuit_Dim1#, Heures_Nuit_Dim2#
Dim Heures_Jour_JF1#, Heures_Jour_JF2#, Heures_Nuit_JF1#, Heures_Nuit_JF2#
Dim Heures_Jour_DF1#, Heures_Jour_DF2#, Heures_Nuit_DF1#, Heures_Nuit_DF2#
Heure_DebJ1 = Heure_Deb
Heure_FinJ1 = Heure_Fin
If Heure_Fin < Heure_Deb Then
Heure_FinJ1 = 1
Heure_FinJ2 = Heure_Fin
End If
If Weekday(Jour_Ref, 2) = 7 Or TJF(Jour_Ref) Then
If Weekday(Jour_Ref, 2) = 7 And TJF(Jour_Ref) Then
If Heure_DebJ1 < Heure_Fin_Nuit_Dim_Ref Then
Heures_Nuit_DF1 = Heure_Fin_Nuit_Dim_Ref - Heure_DebJ1
Heure_DebJ1 = Heure_Fin_Nuit_Dim_Ref
End If
If Heure_FinJ1 > Heure_Deb_Nuit_Dim_Ref Then
Heures_Nuit_DF1 = IIf(Heure_Deb_Nuit_Dim_Ref > Heure_DebJ1, Heures_Nuit_DF1 + (Heure_FinJ1 - Heure_Deb_Nuit_Dim_Ref), Heures_Nuit_DF1 + (Heure_FinJ1 - Heure_DebJ1))
Heure_FinJ1 = IIf(Heure_Deb_Nuit_Dim_Ref > Heure_DebJ1, Heure_Deb_Nuit_Dim_Ref, Heure_DebJ1)
End If
Heures_Jour_DF1 = Heure_FinJ1 - Heure_DebJ1
Else
If Weekday(Jour_Ref, 2) = 7 Then
If Heure_DebJ1 < Heure_Fin_Nuit_Dim_Ref Then
Heures_Nuit_Dim1 = Heure_Fin_Nuit_Dim_Ref - Heure_DebJ1
Heure_DebJ1 = Heure_Fin_Nuit_Dim_Ref
End If
If Heure_FinJ1 > Heure_Deb_Nuit_Dim_Ref Then
Heures_Nuit_Dim1 = IIf(Heure_Deb_Nuit_Dim_Ref > Heure_DebJ1, Heures_Nuit_Dim1 + (Heure_FinJ1 - Heure_Deb_Nuit_Dim_Ref), Heures_Nuit_Dim1 + (Heure_FinJ1 - Heure_DebJ1))
Heure_FinJ1 = IIf(Heure_Deb_Nuit_Dim_Ref > Heure_DebJ1, Heure_Deb_Nuit_Dim_Ref, Heure_DebJ1)
End If
Heures_Jour_Dim1 = Heure_FinJ1 - Heure_DebJ1
Else
If Heure_DebJ1 < Heure_Fin_Nuit_Dim_Ref Then
Heures_Nuit_JF1 = Heure_Fin_Nuit_Dim_Ref - Heure_DebJ1
Heure_DebJ1 = Heure_Fin_Nuit_Dim_Ref
End If
If Heure_FinJ1 > Heure_Deb_Nuit_Dim_Ref Then
Heures_Nuit_JF1 = IIf(Heure_Deb_Nuit_Dim_Ref > Heure_DebJ1, Heures_Nuit_JF1 + (Heure_FinJ1 - Heure_Deb_Nuit_Dim_Ref), Heures_Nuit_JF1 + (Heure_FinJ1 - Heure_DebJ1))
Heure_FinJ1 = IIf(Heure_Deb_Nuit_Dim_Ref > Heure_DebJ1, Heure_Deb_Nuit_Dim_Ref, Heure_DebJ1)
End If
Heures_Jour_JF1 = Heure_FinJ1 - Heure_DebJ1
End If
End If
Else
If Heure_DebJ1 < Heure_Fin_Nuit_Ref Then
Heures_Nuit_Std1 = Heure_Fin_Nuit_Ref - Heure_DebJ1
Heure_DebJ1 = Heure_Fin_Nuit_Ref
End If
If Heure_FinJ1 > Heure_Deb_Nuit_Ref Then
Heures_Nuit_Std1 = IIf(Heure_Deb_Nuit_Ref > Heure_DebJ1, Heures_Nuit_Std1 + (Heure_FinJ1 - Heure_Deb_Nuit_Ref), Heures_Nuit_Std1 + (Heure_FinJ1 - Heure_DebJ1))
Heure_FinJ1 = IIf(Heure_Deb_Nuit_Ref > Heure_DebJ1, Heure_Deb_Nuit_Ref, Heure_DebJ1)
End If
Heures_Jour_Std1 = Heure_FinJ1 - Heure_DebJ1
End If
If Heure_FinJ2 > 0 Then
If Weekday(Jour_Ref + 1, 2) = 7 Or TJF(Jour_Ref + 1) Then
If Weekday(Jour_Ref + 1, 2) = 7 And TJF(Jour_Ref + 1) Then
If Heure_FinJ2 < Heure_Fin_Nuit_Dim_Ref Then
Heures_Nuit_DF2 = Heure_FinJ2
Else
Heures_Nuit_DF2 = Heure_Fin_Nuit_Dim_Ref
Heures_Jour_DF2 = Heure_FinJ2 - Heure_Fin_Nuit_Dim_Ref
End If
Else
If Weekday(Jour_Ref + 1, 2) = 7 Then
If Heure_FinJ2 < Heure_Fin_Nuit_Dim_Ref Then
Heures_Nuit_Dim2 = Heure_FinJ2
Else
Heures_Nuit_Dim2 = Heure_Fin_Nuit_Dim_Ref
Heures_Jour_Dim2 = Heure_FinJ2 - Heure_Fin_Nuit_Dim_Ref
End If
Else
If Heure_FinJ2 < Heure_Fin_Nuit_Dim_Ref Then
Heures_Nuit_JF2 = Heure_FinJ2
Else
Heures_Nuit_JF2 = Heure_Fin_Nuit_Dim_Ref
Heures_Jour_JF2 = Heure_FinJ2 - Heure_Fin_Nuit_Dim_Ref
End If
End If
End If
Else
If Heure_FinJ2 < Heure_Fin_Nuit_Ref Then
Heures_Nuit_Std2 = Heure_FinJ2
Else
Heures_Nuit_Std2 = Heure_Fin_Nuit_Ref
Heures_Jour_Std2 = Heure_FinJ2 - Heure_Fin_Nuit_Ref
End If
End If
End If
Select Case Type_Retour
Case 1
Determine_Heures = IIf(Heures_Jour_Std1 + Heures_Jour_Std2 = 0, "", Heures_Jour_Std1 + Heures_Jour_Std2)
Case 2
Determine_Heures = IIf(Heures_Nuit_Std1 + Heures_Nuit_Std2 = 0, "", Heures_Nuit_Std1 + Heures_Nuit_Std2)
Case 3
Determine_Heures = IIf(Heures_Jour_Dim1 + Heures_Jour_Dim2 = 0, "", Heures_Jour_Dim1 + Heures_Jour_Dim2)
Case 4
Determine_Heures = IIf(Heures_Nuit_Dim1 + Heures_Nuit_Dim2 = 0, "", Heures_Nuit_Dim1 + Heures_Nuit_Dim2)
Case 5
Determine_Heures = IIf(Heures_Jour_JF1 + Heures_Jour_JF2 = 0, "", Heures_Jour_JF1 + Heures_Jour_JF2)
Case 6
Determine_Heures = IIf(Heures_Nuit_JF1 + Heures_Nuit_JF2 = 0, "", Heures_Nuit_JF1 + Heures_Nuit_JF2)
Case 7
Determine_Heures = IIf(Heures_Jour_DF1 + Heures_Jour_DF2 = 0, "", Heures_Jour_DF1 + Heures_Jour_DF2)
Case 8
Determine_Heures = IIf(Heures_Nuit_DF1 + Heures_Nuit_DF2 = 0, "", Heures_Nuit_DF1 + Heures_Nuit_DF2)
End Select
End Function