Sub testMAGICD()
    Debug.Print ConvertSeconds(3 * 10 ^ 9, 0)
End Sub
Function ConvertSeconds(Nbsec#, Optional chx As Byte = 1) As String
'************************************************************************************
'Converti des secondes en jours | heures | minutes | secondes ou
'                         années | jours | heures | minutes | secondes ou
'                         années | mois | jours | heures | minutes | secondes
'Magic_Doctor
'************************************************************************************
'- Nbsec : un nombre de secondes
'- chx   : si 1 ou omis --> jours | heures | minutes | secondes
'          si 2         --> années | jours | heures | minutes | secondes
'          si 3         --> années | mois | jours | heures | minutes | secondes
'************************************************************************************
    Dim tj#, A%, M As Byte, J#, H As Byte, Mn As Byte, sec As Byte
    Dim sufAns$, sufJours$, ta#, fa#, jfa#, tm#, fm#, jfm#, fj#, sfj#, hfj#, fh#, mfh#
    tj = Nbsec / 86400         'nombre (décimal) total de jours (secondes converties en jours)
    '----------------------------------
    '----------------------------------
    Debug.Print CDate(tj)
    '----------------------------------
    '----------------------------------
    ta = tj / 365.25           'nombre (décimal) total d'années (365,25 = nombre moyen de jours dans une année)
    A = Int(ta)                'nombre entier d'années
    fa = ta - A                'fraction d'année
    jfa = fa * 365.25          'nombre (décimal) de jours dans la fraction d'année
    If chx = 1 Then            'jours | heures | minutes | secondes
        J = Int(tj)            'nombre entier de jours dans Nbsec
        fj = tj - J            'fraction de jour
        sfj = fj * 86400       'nombre de secondes dans la fraction de jour
        hfj = sfj / 3600       'nombre (décimal) d'heures dans la fraction de jour
        H = Int(hfj)           'nombre entier d'heures dans la fraction de jour
        fh = hfj - H           'fraction d'heure
        mfh = fh * 60          'nombre (décimal) de minutes dans la fraction d'heure
        Mn = Int(mfh)          'nombre entier de minutes dans la fraction d'heure
        sec = (mfh - Mn) * 60  'nombre de secondes dans la fraction de minute
        sufJours = IIf(J = 0, "", IIf(J = 1, " jour ", " jours "))
        ConvertSeconds = IIf(Int(tj) = 0, "", Int(tj) & sufJours) & IIf(H < 10, "0", "") & H & ":" & IIf(Mn < 10, "0", "") & Mn & ":" & IIf(sec < 10, "0", "") & sec
    ElseIf chx = 2 Then        'années | jours | heures | minutes | secondes
        J = Int(jfa)           'nombre entier de jours dans la fraction d'année
        fj = jfa - J           'fraction de jour
        sfj = fj * 86400       'nombre de secondes dans la fraction de jour
        hfj = sfj / 3600       'nombre (décimal) d'heures dans la fraction de jour
        H = Int(hfj)           'nombre entier d'heures dans la fraction de jour
        fh = hfj - H           'fraction d'heure
        mfh = fh * 60          'nombre (décimal) de minutes dans la fraction d'heure
        Mn = Int(mfh)          'nombre entier de minutes dans la fraction d'heure
        sec = (mfh - Mn) * 60  'nombre de secondes dans la fraction de minute
        sufAns = IIf(A = 0, "", IIf(A = 1, " an ", " ans "))
        sufJours = IIf(J = 0, "", IIf(J = 1, " jour ", " jours "))
        ConvertSeconds = IIf(A = 0, "", A & sufAns) & IIf(J = 0, "", J & sufJours) & IIf(H < 10, "0", "") & H & ":" & IIf(Mn < 10, "0", "") & Mn & ":" & IIf(sec < 10, "0", "") & sec
    Else                       'années | mois | jours | heures | minutes | secondes
        tm = jfa / 30.4375     'nombre (décimal) total de mois (30,4375 = nombre moyen de mois dans une année)
        M = Int(tm)            'nombre entier de mois
        fm = tm - M            'fraction de mois
        jfm = fm * 30.4375     'nombre de jours dans la fraction de mois
        J = Int(jfm)           'nombre entier de jours dans la fraction de mois
        fj = jfm - J           'fraction de jour
        sfj = fj * 86400       'nombre de secondes dans la fraction de jour
        hfj = sfj / 3600       'nombre (décimal) d'heures dans la fraction de jour
        H = Int(hfj)           'nombre entier d'heures dans la fraction de jour
        fh = hfj - H           'fraction d'heure
        mfh = fh * 60          'nombre (décimal) de minutes dans la fraction d'heure
        Mn = Int(mfh)          'nombre entier de minutes dans la fraction d'heure
        sec = (mfh - Mn) * 60  'nombre de secondes dans la fraction de minute
        sufAns = IIf(A = 0, "", IIf(A = 1, " an ", " ans "))
        sufJours = IIf(J = 0, "", IIf(J = 1, " jour ", " jours "))
        ConvertSeconds = IIf(A = 0, "", A & sufAns) & IIf(M = 0, "", M & " mois ") & IIf(J = 0, "", J & sufJours) & IIf(H < 10, "0", "") & H & ":" & IIf(Mn < 10, "0", "") & Mn & ":" & IIf(sec < 10, "0", "") & sec
    End If
End Function