Sub Macro1()
Dim O As Worksheet
Dim TV As Variant
Dim I As Integer
Dim COL As Byte
Dim D As Double
Dim F As Double
Set O = Worksheets("Calcul de temps de travail")
TV = O.Range("C7").CurrentRegion
For I = 2 To UBound(TV, 1) - 1
Select Case Weekday(CDate(TV(I, 1)))
Case 7
COL = 5
Case 1
COL = 6
Case Else
COL = 4
End Select
If TV(I, 2) > 12 / 24 And TV(I, 2) < 13 / 24 Then D = 13 / 24 Else D = TV(I, 2)
If TV(I, 3) > 12 / 24 And TV(I, 3) < 13 / 24 Then F = 12 / 24 Else F = TV(I, 3)
If TV(I, 2) < 12 / 24 And TV(I, 3) > 13 / 24 Then F = TV(I, 3) - 1 / 24
If (TV(I, 2) > 12 / 24 And TV(I, 2) < 13 / 24) And (TV(I, 3) > 12 / 24 And TV(I, 3) < 13 / 24) Then F = 0: D = 0
O.Cells(I + 6, COL + 2).Value = IIf(F = 0 And D = 0, "", Format(F - D, "hh:mm"))
Next I
End Sub