Partager via

problème de calcul sur des dates avant et après l'année 1900

Anonyme
2021-09-01T09:46:11+00:00

Bonjour,

je possède un tableau Excel avec de nombreuses lignes contenant des dates avant l'année 1900 et après celle-ci

Par exemple il y a une date de début dans la colonne C et une date de fin dans la colonne F

Dans ce même tableau, il y d'autres colonnes avec des dates de début et des dates fin comme les colonnes L&M et les colonnes O&P

31/03/1798 12/03/1858
01/04/1784 25/02/1850
16/11/1790 15/02/1871
10/01/1826 28/11/1907
17/01/1826 19/03/1891
22/04/1854 24/10/1921
13/06/1875 09/12/1966

Les dates saisies se retrouvent soit en mode texte soit en mode date, et bien sur alignées soit à droite soit à gauche

Je souhaite connaitre le nombre d'années, de mois, de jours qui se trouve entre ces deux dates

Connaissez vous une formule ou une macro qui permettrez de faire ce calcul ?

Avec tous mes remerciement anticipées

Cordialement

Philippe

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

  1. Anonyme
    2021-09-02T08:38:23+00:00

    Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

    Bonjour, Philippe

    Je comprends votre choc quand vous avez vu la solution VBA.

    Il y a cependant un autre moyen. Étant donné qu’Excel ne gère pas les dates postérieures à 1900. Pour les dates postérieures à 1800, une solution de contournement consiste à ajouter 1000 ans à la date et à l’utiliser en deux étapes, le tout à l’aide de formules. Vous pouvez choisir de masquer la colonne qui ajoute les 1000 ans à la date. C’est ainsi que vous vous y prendrez.

    Ayez une autre colonne entre la date afin que vous puissiez avoir des colonnes qui auront les nouvelles dates. Utilisez la formule ci-dessous.

    en supposant que la première date est en A4, mettez la formule ci-dessous dans B4

    =IF(ISTEXT(A4),DATEVALUE(LEFT(A4,LEN(A4)-4)&RIGHT(A4,4)+1000),EDATE(A4,12000))

    donc votre date du 17/01/1826 sera convertie en 17/01/2826

    en supposant que la deuxième date est en C4.mettre la formule ci-dessous dans D4

    =IF(ISTEXT(C4),DATEVALUE(LEFT(C4,LEN(C4)-4)&RIGHT(C4,4)+1000),EDATE(C4,12000))

    sur la cellule E4, mettre la formule : =DATEDIF(B4,D4,"y »)& » années « &DATEDIF(B4,D4,"ym »)& » mois, « &DATEDIF(B4,D4,"md »)& » jours »

    Travailler avec des dates antérieures à 1800 mettra certainement en perspective un autre défi étant donné qu’il y a eu des changements dans le nombre de jours pour le calendrier grégorien actuel en 1752.

    Finalement, je conseillerais de se déplacer pour le faire avec VBA car cela peut fonctionner avec des dates allant jusqu’au 1er janvier 0100.

    Pour référence future, vous pouvez consulter l’article [ https://docs.microsoft.com/en-us/office/trouble... ]. Apprenez les rouages de VBA et je suis sûr que vous obtiendrez une solution fonctionnelle pour les dates historiques.

    Tous les meilleurs.

    Pakrashio.

    Cette réponse a-t-elle été utile ?

    2 personnes ont trouvé cette réponse utile.
    0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

  1. DanielCo 107.7K Points de réputation
    2021-09-02T07:08:37+00:00

    Bonjour,

    Je n'avais pas fait attention qu'il y avait des dates postérieures à 1899. La formule est donc, pour une date en A1 :

    =SI(ESTNUM(A1);MOIS.DECALER(A1;400*12);DATE(DROITE(A1;4)+400;STXT(A1;4;2);GAUCHE(A1;2)))

    Regarde ce classeur :

    https://www.cjoint.com/c/KIchibxUh3t

    Daniel

    Cette réponse a-t-elle été utile ?

    2 personnes ont trouvé cette réponse utile.
    0 commentaires Aucun commentaire

8 réponses supplémentaires

  1. DanielCo 107.7K Points de réputation
    2021-09-01T13:38:36+00:00

    Bonjour,

    Si tu veux travailler avec des intervalles mois/jours exacts (mais as-tu besoin d'une telle précision ?), transpose ces dates en ajoutant 200 ans avec la formule (an supposant que le tableau commence en A1):

    =DATE(DROITE(A1;4)+200;STXT(A1;4;2);GAUCHE(A1;2))

    ou

    =DATE(DROITE(A1;4)+400;STXT(A1;4;2);GAUCHE(A1;2))

    si les dates remontent avant 1700.

    Les dates sont alors des nombres et tu peux travailler sur les différences comme avec des dates normales avec la fonction DATEDIF.

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2021-09-01T11:46:38+00:00

    Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

    la formule =VALUE(RIGHT(D4,4))-VALUE(RIGHT(C4,4)) obtient uniquement l’année à partir des dates et renvoie la différence.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2021-09-01T11:37:57+00:00

    Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

    Bonjour PhM-37,

    Vous pouvez essayer la solution suivante, la seule chose que je mentionnerais avec elle est que les valeurs / dates doivent être en mode texte, y compris celles après 1900.

    j’ai utilisé les formules =VALUE(RIGHT(D4,4))-VALUE(RIGHT(C4,4)). pour donner une différence dans le nombre de jours entre les deux dates.

    jetez un coup d’œil à ce qui précède.

    Une autre solution à votre problème nécessitera plus de code dans VBA qui nécessitera d’identifier les mois qui ont 30 jours, 31 jours, et si les années bissextiles sont incluses.

    Veuillez consulter le fil de discussion dans https://stackoverflow.com/questions/55102894/vb...

    Veuillez noter qu’il s’agit d’un site non-Microsoft, alors veillez à ne pas donner d’informations personnelles ni à télécharger des éléments sans comprendre les risques.

    J’espère que cela éclairera ce que vous voulez obtenir.

    Tous les meilleurs

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire