Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 [RESOLU] DATEDIF() en semaine, faisable ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

aragdur

XLDnaute Junior
Salut,

J'ai cette formule qui me permet de connaître l'âge sous le format :
2 a 4 m 15 j

si je souhaiterai avoir
2 a 4 m 2 s 1 j

s, c'est pour semaine bien sûr 🙂

j'ai déjà testé "w" sans succès ^^'

=DATEDIF([@[DATE DE NAISSANCE]];[@DATE];"y")&"a "&DATEDIF([@[DATE DE NAISSANCE]];[@DATE];"ym")&"m "&DATEDIF([@[DATE DE NAISSANCE]];[@DATE];"md")&"j"

date de naissance = c'est clair,
date = une date que je choisi.

une idée svp ?

cdlt
 
Bonjour.
Inspirez vous peut être de cette fonction perso :
VB:
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", "heure", "min")
      If NbUnit * Choose(U, 1, 0, 0, 1, 1, 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
Elle donne volontairement un texte d'une précision de 2 unités de temps consécutives seulement. Je l'utilisais pour apprécier des anciennetés de fichiers.
 

Salut,

merci pour cet élément.
tu rajoutes ça sur le code de la page ?
 
La formule de JHA ne donne pas toujours le même résultat pour une même durée en jours entre les deux dates. C'est gênant je trouve d'avoir un texte différent pour des âges en jours identiques.
 
Je propose une réécriture de ma fonction avec un paramètre d'option supplémentaire facultatif indiquant la précision souhaitée (-1 assumé, soit l'ordre de grandeur assez vague qui me convenait).
S'il est positif il indique la plus fine unité de durée souhaitée, de 1 pour l'année jusqu'à 6 pour la minute.
Sinon c'est, en quelque sorte, la virgule flottante, 0 pour un seul terme jusqu'à -5 pour tous.
VB:
Function DuréeEnClair(ByVal DuRest As Double, Optional ByVal OPé As Long = -1) As String
Dim U As Long, DuUnit As Double, NbUnit As Long, Trad As String, Compter As Boolean, K As Long
For U = 1 To 6
   If DuRest = 0 Then Exit For
   If OPé > 0 And U > OPé Then Exit For
   DuUnit = Choose(U, 365.2425, 30.436875, 7, 1, 1 / 24, 1 / 1440)
   NbUnit = Int(DuRest / DuUnit)
   If NbUnit > 0 Then
      If OPé <= 0 Then Compter = True
      If Trad <> "" Then
         If DuréeEnClair <> "" Then
            DuréeEnClair = DuréeEnClair & ", " & Trad
         Else
            DuréeEnClair = Trad: End If
         End If
      Trad = NbUnit & " " & Choose(U, "an", "mois", "sem.", "jour", "heure", "min")
      If NbUnit * Choose(U, 1, 0, 0, 1, 1, 0) > 1 Then Trad = Trad & "s"
      DuRest = DuRest - DuUnit * NbUnit: End If
   If Compter Then K = K - 1: If K < OPé Then Exit For
   Next U
If Trad <> "" Then
   If DuréeEnClair <> "" Then
      DuréeEnClair = DuréeEnClair & " et " & Trad
   Else
      DuréeEnClair = Trad: End If
   End If
If OPé > 0 And DuréeEnClair = "" Then DuréeEnClair = "Moins d'1 " _
   & Choose(OPé, "an", "mois", "sem.", "jour", "heure", "min")
End Function
 
La formule de JHA ne donne pas toujours le même résultat pour une même durée en jours entre les deux dates. C'est gênant je trouve d'avoir un texte différent pour des âges en jours identiques.
si les dates d'origines ne sont pas les mêmes cela arrivera tant que l'on prendra des durées variables pour des constantes !!!
l'unité Mois n'est pas un sous-multiple de An
l'unité Semaine n'est pas un sous-multiple de Mois
seul jour est une constante !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
1 K
Réponses
0
Affichages
481
Réponses
1
Affichages
718
  • Question Question
Microsoft 365 Convertir en VBA
Réponses
45
Affichages
5 K
Réponses
10
Affichages
2 K
Réponses
11
Affichages
2 K
Réponses
3
Affichages
974
Réponses
1
Affichages
1 K
  • Suggestion Suggestion
Date et heure EcartDate
Réponses
32
Affichages
5 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…