Function DuréeEnClair(ByVal DuRest As Double) As String
Dim U As Long, DuUnit As Double, NbUnit As Long, K As Long, Trad As String
For U = 1 To 6
DuUnit = Choose(U, 365.2425, 30.436875, 7, 1, 1 / 24, 1 / 1440)
NbUnit = Int(DuRest / DuUnit)
If NbUnit > 0 Or K > 0 Then K = K + 1: If K > 2 Then Exit Function
If NbUnit > 0 Then
Trad = NbUnit & " " & Choose(U, "an", "mois", "sem.", "jour", "h.", "min")
If NbUnit * Choose(U, 1, 0, 0, 1, 0, 0) > 1 Then Trad = Trad & "s"
If K = 2 Then DuréeEnClair = DuréeEnClair & " et "
DuréeEnClair = DuréeEnClair & Trad: End If
DuRest = DuRest - DuUnit * NbUnit: Next U
End Function