Sub Test()
Dim T(), L As Long, HDéb As Double, HFin As Double, Sec As Long
T = ActiveSheet.[A2:B2].Resize(ActiveSheet.[A65000].End(xlUp).Row - 1).Value
For L = 1 To UBound(T, 1)
HDéb = Int(T(L, 1) * 86400 + 0.5): HFin = Int(T(L, 2) * 86400 + 0.5)
Sec = Borné(HDéb, 79200, HFin) - Borné(HDéb, 21600, HFin): If Sec < 0 Then Sec = Sec + 57600
T(L, 1) = IIf(Sec, Sec / 3600, Empty)
Sec = HFin - HDéb - Sec: If Sec < 0 Then Sec = Sec + 86400
T(L, 2) = IIf(Sec, Sec / 3600, Empty)
Next L
ActiveSheet.[C2:D2].Resize(UBound(T, 1)).Value = T
End Sub
Private Function Borné(ByVal LimInf As Double, ByVal V As Double, ByVal LimSup As Double) As Double
Borné = (LimInf + Abs(V - LimInf) - Abs(LimSup - V) + LimSup) / 2
End Function