Bonjour,
Comme il n'y a pas de fichier exemple, voici une fonction perso à mettre dans un module standard :
Function FormatTempsAnnee(Valeur As Single) As String
Dim T
Dim Annee As Integer
Dim Mois As Integer
Dim Jour As Integer
Dim Heure As Integer
Dim Minute As Integer
Dim Seconde As Integer
Dim NJAnnee As Single
Dim NJMois As Single
NJAnnee = 365.25
NJMois = NJAnnee / 12
Annee = Int(Valeur / NJAnnee)
Mois = Int(Valeur / NJMois) - Annee * 12
Jour = Int(Valeur) - Mois * NJMois - Annee * NJAnnee
T = Split(Format(Valeur - Int(Valeur), "hh:mm:ss"), ":")
Heure = T(0)
Minute = T(1)
Seconde = T(2)
FormatTempsAnnee = IIf(Annee > 0, Annee & IIf(Annee > 1, " années ", " année "), "") & _
IIf(Mois > 0, Mois & " mois ", "") & _
IIf(Jour > 0, Jour & IIf(Jour > 1, " jours ", " jour "), "") & _
IIf(Heure > 0, Heure & IIf(Heure > 1, " heures ", " heure "), "") & _
IIf(Minute > 0, Minute & IIf(Minute > 1, " minutes ", " minute "), "") & _
IIf(Seconde > 0, Seconde & IIf(Seconde > 1, " secondes ", " seconde "), "")
End Function
La date de début en cellule A2 par exemple : 31/01/2019 10:54:26
La date de fin en cellule B2 : 04/03/2019 13:23:12
avec comme format personnalisé si nécessaire pour les deux dates : jjjj jj mmmm aaaa hh:mm:ss
La différence de date en cellule C2 : =B2-A2
Et enfin, la formule qui appelle la fonction perso en D2 : =FormatTempsAnnee(C2)
Ce qui donne comme résultat : 1 mois 2 jours 2 heures 28 minutes 46 secondes
Maintenant, si tu ne veux pas de fonction perso, voici une formule Excel assez longue :
=ENT(C2) & " jour(s) "&ENT((C2-ENT(C2))*24) &" heure(s) "&ENT(((C2-ENT(C2))*24-ENT((C2-ENT(C2))*24))*60)&" minute(s) "&ENT(((((C2-ENT(C2))*24-ENT((C2-ENT(C2))*24))*60)-ENT((((C2-ENT(C2))*24-ENT(ENT((C2-ENT(C2))*24)))*60)))*60)&" seconde(s)"