Erreur de calcul de jour avec "datedif"

Résolu
Bonjour,
je cherche une solution avec cette formule :

=DATEDIF(D2;D3;"Y")&SI(DATEDIF(D2;D3;"Y")>1;" ans ";" an ")&DATEDIF(D2;D3;"YM") &" mois "&DATEDIF(D2;D3;"MD")&SI(DATEDIF(D2;D3;"MD")>1;" jours";" jour")

d2 = 02/05/1978
d3 = 01/01/1996
Résultat : 17ans 7 mois 194jours alors que j obtiens
17ans 8 mois 0jour lorsque je passe 01/05/1978 en d2
Quelqu un connait il ce problème et éventuellement la solution ?
Merci d avance
Cordialement
SG

8 réponses

  1. re

    merci a Vaucluse pour votre réponse que j ai reçue par mail :

    "Bonjour
    qu'est ce qui vous gênes?
    Si c'est le fait que vous trouvez 0 dans votre calcul, c'est normal car DATEDIF n'inclut pas le jour de départ et donc il faut rajouter +1 dans le calcul des jours
    sinon le résultat est normal puisque le nombre de mois est complet si la date du jour est la même au deux postes.
    crdlmnt

    1°dois je décocher "Recevoir les réponses par mail" pour que tout le monde profite des réponses ?

    2° ce n est pas le 0jours du qui me gênes, mais le 194 jours du 1° résultat

    Cordialement
    0
    1. Contributeur
      Ma réponse a été supprimée, car je me suis rendu compte que le problème était ailleurs.
      Je n'ai pas d'explication sur le fait que la formule comporte beaucoup trop de jours lorsque le nombre de mois n'est pas complet!
      je cherche, mais pour le moment je ne trouve pas
      Pour info, le nombre de jours avec les dates données est chez moi de 143 et pas de 194, ce qui ne change rien au problème!
      A plus peut être
      0
    2. Contributeur
      .. suite toujours pas de solution rationnelle sauf à calculer en fin de formule le nombre de jour avec ce code:

      =SI(JOUR(D2)=JOUR(D3);0;DATEDIF(D2;FIN.MOIS(D2;0);"d")+DATEDIF(FIN.MOIS(D3;-1);D3;"d"))

      mais je suis sur de rien et surtout pas que ça puisse inclure dans le compte les années bissextiles

      Bonne chance pour la suite
      0
  2. Bonjour,
    Avec vos valeurs et votre formule mon excel 2003 me donne 17ans 7 mois 30 jours et malgré quelques tentatives je n'obtiens pas 194 jours.
    0
    1. Bonjour à tous

      Comme Vaucluse (salut au passage!) j'obtiens bien 143

      Apparemment le problème se pose pour chaque 1er janvier des années bissextiles (et que ce jour la apparemment !) ; si on prend comme date en d3 le jour précédent (31/12/95) ou le jour suivant (2/1/96) les calculs donnent des résultats corrects,
      j'avais pensé à une solution de "bricolage"en modifiant ainsi la formule :

      =DATEDIF(D2;D3;"Y")&SI(DATEDIF(D2;D3;"y")>1;" ans ";" an ")&DATEDIF(D2;D3;"ym")&" mois "&SI(DATEDIF(D2;D3;"md")>31;DATEDIF(D2;D3-1;"md")+1&SI(DATEDIF(D2;D3-1;"md")+1>1;" jours";" jour");DATEDIF(D2;D3;"md")&SI(DATEDIF(D2;D3;"md")>1;" jours";" jour"))

      qui fonctionne avec l'exemple donné

      mais le problème est plus complexe, en fait l'erreur se produit pour tout jour du mois de janvier d'une année bissextile dont le quantième est inférieur au jour de départ

      Je continue à piocher la question

      Cdlmnt

      "L'imagination est plus importante que le savoir." A. Einstein
      0
      1. Re

        En fait il ne faut pas chercher trop loin, il suffit d'enlever 30 jours au lieu de 1 pour que la formule fonctionne du 1 au 30 janvier (le 31 où les dates sont égales ou la 2eme date est < à la 1ere et dans ce cas pas de bug) :

        =DATEDIF(D2;D3;"Y")&SI(DATEDIF(D2;D3;"y")>1;" ans ";" an ")&DATEDIF(D2;D3;"ym")&" mois "&SI(DATEDIF(D2;D3;"md")>31;DATEDIF(D2;D3-30;"md")&SI(DATEDIF(D2;D3-30;"md")>1;" jours";" jour");DATEDIF(D2;D3;"md")&SI(DATEDIF(D2;D3;"md")>1;" jours";" jour"))

        Mais en attendant le bug d'Excel pour les janviers d'année bissextile n'est pas élucidé, ni pour quoi 143 !

        Cdlmnt
        0
    2. Contributeur
      Bonjour à tous,

      C'est quand même étrange.
      Je suis comme tontong. Je n'ai pas cette erreur, que ce soit sur 2003 ou 2010.
      (sur W7 64 bits, bien que je ne pense pas que ça joue)
      Vos versions c'est ?

      eric
      0
      1. Bonjour Eric

        Je suis sur 2007

        Bien cordialement
        0
    3. Bonjour a tous,
      et merci de votre rapide réactivité

      la formule de "Via55" corrige effectivement le problèmes des jours mais "oublie 1 mois" avec D2= 02/05/1978 et D3 = 01/01/1996 et donne le bon résultat en passant D3 au 02/01/1996
      en tout cas c est déjà mieux qu au départ ...
      je pense effectivement que les années bissextiles sont la cause

      Cdlt
      0
      1. Exact !!! je n'avais pas vu le problème dès qu'il y un écart d'un jour seulement

        La formule ainsi modifiée devrait rectifier , à tester dans tous les sens :
        =DATEDIF(D2;D3;"Y")&SI(DATEDIF(D2;D3;"y")>1;" ans ";" an ")&DATEDIF(D2;D3;"ym")&" mois "&SI(DATEDIF(D2;D3;"md")>31;DATEDIF(D2;D3-32;"md")+2 &SI(DATEDIF(D2;D3-32;"md")+2>1;" jours";" jour");DATEDIF(D2;D3;"md")&SI(DATEDIF(D2;D3;"md")>1;" jours";" jour"))

        Cdlmnt
        0
    4. re

      Magique !!!!!!
      je viens de tester avec quelques dates qui me posaient probleme, tout semble fonctionner correctement
      Merci
      A+
      Cdlt

      --
      0
      1. Contributeur
        Tu peux dire sur quelle version d'excel tu es stp ?
        eric
        0
    5. je suis sous excel 2007

      Cdlt

      --
      0
      1. Bonjour a tous
        après différents tests, tout semble OK
        Merci a Via55
        Cdlt--
        0