Ecart entre deux dates

Bonjour tout le monde, bonjour tous les férus et les amoureux de l'informatique.

Je fais de la généalogie et j'ai besoin d'avoir une feuille de calcul afin de calculer l'écart, en années, mois et jours entre 2 dates.

J'ai une personne qui est née tel jour et qui est témoin plus tard à un mariage ou autre, et je dois renseigner mon logiciel (Heredis 2023) par l'âge que cette personne a par rapport à cet événement.

Je pense que c'est simple à faire, mais moi, je ne sais pas faire.

Penchez-vous tous sur ce projet, et proposez-moi s'il vous plaît votre proposition.

Merci à ceux qui répondront à ma demande.

Bien à vous.

Cordialement,

bonjour D. Mexmain,

ce sont des années avant 1900 ?

Bonjour,

Oui, depuis le 17ème jusqu'à nos jours mais avec les dates utilisées actuellement (de notre époque).

Personnage baptisé le 20 Juin 1680 et présent à un événement le 1er Janvier 1701 lors de la Naissance de son fils, comme étant le déclarant.

Combien d'années, de mois et de jours se sont écoulés entre les deux dates.

le problème c'est qu'Excel ne connait pas des dates avant 1900, donc il faut y ajouter 4 siècles (comme çà le probleme des années bissextiles est aussi résolu)

voir PJ

14mexmain.xlsx (16.21 Ko)

re,

maintenant avec vos dates (remarque : comme elles sont < 1900, ce sont des textes !!!)

PS. il y a souvent des discussions avec le genre de calculations, donc moi je préfère de diviser l'écart par 365.25 jours pour savoir les années, etc

13mexmain.xlsx (38.05 Ko)

Bonjour à tous,

dans la fiche de l'individu, tu peux calculer l'age qu'il a de sa naissance a un événement.

ou alors si tu n'as pas cette option :

https://www.topster.fr/calendrier/zeitrechner.php

Crdlmt

Bonjour à tous,

tu l'as dans les outils.

image image

eric

Salut le forum,
Salut les cracks,

pour ce que ça vaut, en VBA, bien sûr!
Certainement à peaufiner

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim rCel1 As Range, rCel2 As Range
Dim iIdx%, lgD As Long, lgY As Long, lgM As Long
'
If IsDate([A1]) And IsDate([D1]) Then
    Set rCel1 = IIf(CDate([A1]) <= CDate([D1]), [A1], [D1])
    Set rCel2 = IIf(CDate([A1]) <= CDate([D1]), [D1], [A1])
    lgM = DateDiff("m", CDate(rCel1), CDate(rCel2))
    lgY = Int(lgM / 12)
    lgM = lgM - (lgY * 12)
    lgD = DateDiff("d", DateSerial(Year(CDate(rCel2)), Month(CDate(rCel2)), Day(CDate(rCel1))), CDate(rCel2))
    If lgD < 0 Then _
        lgM = IIf(lgM = 0, 11, lgM - 1): _
        iIdx = DateDiff("d", DateAdd("m", -1, CDate(rCel2)), CDate(rCel2)): _
        If lgM = 11 Then lgY = lgY - 1
    MsgBox lgY & " ans  " & lgM & " mois  " & IIf(lgD < 0, iIdx + lgD, lgD) & " jours"
End If
'
End Sub

A+

14calculage.xlsm (15.90 Ko)

@Curulis57,

Je ne savais pas que cela était permis pour les dates avant 1900 ... . Il n'y a pas des bugs ou des remarques à faire ???

Sub Avant1900()
     dat1 = "16/06/1024"                     '1.000 années dans l'histoire
     dat2 = "31/12/1024"
     d1 = CDate(dat1)
     d2 = CDate(dat2)
     MsgBox d2 - d1 & " jours" & vbLf & DateSerial(2024, 12, 31) - DateSerial(2024, 6, 16)
End Sub

Salut BsAlv,

il doit y avoir des erreurs de comptage du simple fait du passage du calendrier Julien au Grégorien en 1582.
DATEDIFF ne tient pas compte de ça et calcule de façon classique.
Lors de cet événement, en France, le 9 décembre est devenu le 20 décembre d'un jour à l'autre, ce qui n'est clairement pas l'option de DATEDIFF.

image

Bref, après 1582, ça devrait être correct mais si la période calculée chevauche cet événement, il y a un couac.
Le calcul ne se fait pas avant l'an 100, les années étant alors interprétées après 1900 ou 2000.

Dans le fichier, joint, les cases vertes permettent le calcul inverse. Tu rentres une date et VBA se sert de l'écart mesuré pour retrouver la 2e date (à part un bug que je ne m'explique pas -encore- qui m'oblige à afficher le résultat en MSGBOX !!

Toute correction ou amélioration, au su de ce qui précède, est la bienvenue, évidemment!

A+

16calculage.xlsm (19.71 Ko)

Bonjour les amis et un grand merci pour votre réactivité.

J'ai trouvé mon bonheur dans vos propositions.

Toutes mes amitiés à vous tous et bonne continuation !

Cordialement,

Dominique

Bonjour,

Tu l'as lu ce post ?
Tu as cette calculatrice dans Heredis

Bonjour à tous,

tu l'as dans les outils.

image image

eric

Mais bien sûr que vous avez raison, et maintenant je me souviens avoir eu cette proposition, mais je ne l'avais pas retenu.

Et comment expliquer le message d'erreur lors de l'utilisation de : Erreur de confidentialité (ma-calculatrice.fr), proposition reçue de votre forum. Bizare.

Rechercher des sujets similaires à "ecart entre deux dates"