Option Explicit
Const convSec As Long = 86400
Function T2i(T, Optional imgs As Long = 25)
' conversion images ou TC "hh:mm:ss:img" en images
' imgs : images par seconde
If T Like "##:[0-5]#:[0-5]#:##" Then
T2i = CDate(Left(T, 8)) * convSec * imgs + CLng(Right(T, 2))
ElseIf IsNumeric(T) Then
T2i = CLng(T)
Else
T2i = CVErr(xlErrValue)
End If
End Function
Function T2TC(ByVal T, Optional imgs As Long = 25)
' conversion images ou TC en TC "hh:mm:ss:img"
' imgs : images par seconde
T = T2i(T, imgs)
T2TC = format(CDate(Int(T / imgs) / convSec), "hh:mm:ss") & ":" & format(T Mod imgs, "00")
End Function
Function TPlus_i(T1, T2, Optional imgs As Long = 25)
' T2+T1 (images ou TC) en images
TPlus_i = T2i(T2, imgs) + T2i(T1, imgs)
End Function
Function TMoins_i(T1, T2, Optional imgs As Long = 25)
' T2-T1 (images ou TC) en images
TMoins_i = T2i(T2, imgs) - T2i(T1, imgs)
End Function
Function TSomme_i(plage As Range, Optional imgs As Long = 25)
' somme des T (images ou TC) en images
Dim c As Range
For Each c In plage
TSomme_i = TPlus_i(TSomme_i, c.Value, imgs)
Next c
End Function
Function TPlus_TC(T1, T2, Optional imgs As Long = 25)
' T2+T1 (images ou TC) en TC "hh:mm:ss:img"
TPlus_TC = T2TC(TPlus_i(T1, T2, imgs), imgs)
End Function
Function TMoins_TC(T1, T2, Optional imgs As Long = 25)
' T2+T1 (images ou TC) en TC "hh:mm:ss:img"
TMoins_TC = T2TC(TMoins_i(T1, T2, imgs), imgs)
End Function
Function TSomme_TC(plage As Range, Optional imgs As Long = 25)
' somme des T (images ou TC) en TC "hh:mm:ss:img"
TSomme_TC = T2TC(TSomme_i(plage, imgs), imgs)
End Function