Microsoft 365 Différence entre deux dates

Daniel200666

XLDnaute Junior
Bonjour à tous

je fais cette nouvelle demande en joignant cette fois un fichier détaillant ma demande
sur le fond, il s'agit d'un fichier qu'un service m'a donné mais j'aurais besoin en fait de calculer la date de naissance pour ensuite prévoir, dans le futur les éventuels départs à la retraite pour pouvoir embaucher en amont (faire un tuilage de fonction)...vous savez tout...
mais le fichier initial fait plusieurs pages et j'aimerais pouvoir calculer la date de naissance ( mois et année)
pourriez vous me donner un coup de main, par une fonction ou bien une macro VBA, svp ?
je ne vois pas du tout comment je pourrais faire
Merci et bonne fin de journée
 

Pièces jointes

  • modèle Excel Downloads date 07022024.xlsx
    39.6 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Sinon si on prends la date d'aujourd'hui, on pourrait faire :
VB:
Function DateNaissance(C$)
' Date à modifier suivant la date à laquelle à été calculé l'âge
Dim T, NbJ
T = Split(C, " ")
NbJ = Int(T(0) * 365.25 + T(2) * 30.4375)
DateNaissance = Format(Date - NbJ, "dd/mm/yyyy")
End Function
 

Pièces jointes

  • modèle Excel Downloads date 07022024.xlsm
    50.9 KB · Affichages: 2

Daniel200666

XLDnaute Junior
Bonjour Daniel,
A partir d'un âge ( 26 ans et 8 mois ) il n'est pas possible de calculer une date de naissance si on n'a pas à quelle date cet âge a été calculé.
Si on le calcule aujourd'hui ou dans un mois alors la date de naissance sera différente.
En d'autres termes : A quelle date les données de la colonne A ont été calculés ?
hello @sylvanu
merci pour la rapidité
alors, le fichier que j'ai récupéré est daté du 03/11/2023
Merci de s'y etre intéressé !
 

Daniel200666

XLDnaute Junior
Sinon si on prends la date d'aujourd'hui, on pourrait faire :
VB:
Function DateNaissance(C$)
' Date à modifier suivant la date à laquelle à été calculé l'âge
Dim T, NbJ
T = Split(C, " ")
NbJ = Int(T(0) * 365.25 + T(2) * 30.4375)
DateNaissance = Format(Date - NbJ, "dd/mm/yyyy")
End Function
alors top de top, c'est absolument parfait
du coup je vais pouvoir créer une colonne pour connaitre l'age automatiquement à partir de la date de naissance reconstituée
Merci beaucoup et bonne fin de journée
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
En supposant que les âges donnés aient été calculés à cette date :
VB:
Function DateNaissance(C$)
Dim T, NbJ, DateInit
T = Split(C, " ")
NbJ = Int(T(0) * 365.25 + T(2) * 30.4375)
DateInit = 45233 ' Age donné au 03/11/2023
DateNaissance = Format(DateInit - NbJ, "dd/mm/yyyy")
End Function
 

Pièces jointes

  • modèle Excel Downloads date 07022024 V2.xlsm
    51.4 KB · Affichages: 3

Daniel200666

XLDnaute Junior
Re,
En supposant que les âges donnés aient été calculés à cette date :
VB:
Function DateNaissance(C$)
Dim T, NbJ, DateInit
T = Split(C, " ")
NbJ = Int(T(0) * 365.25 + T(2) * 30.4375)
DateInit = 45233 ' Age donné au 03/11/2023
DateNaissance = Format(DateInit - NbJ, "dd/mm/yyyy")
End Function
bonjour @sylvanu , bonjour à tous
oui c'est exactement ce qui me fallait
cependant, dans le cas où je voudrais prévoir un calcul automatique selon la date du jour, est-il possible de prévoir, à la DateInit, l'équivalent d'une formule AUJOURDHUI, à votre avis ?
Merci, bonne journée et bon WE par avance !
 

Daniel200666

XLDnaute Junior
Bonjour,

Dans le fichier de #1 les durées semblent être arrondies au mois, donc impossible de connaître la date de naissance exacte... à plus ou moins 15 jours, oui, mais pas au jour près.

Me trompé-je ? 🤔
bonjour @TooFatBoy
oui je n'ai qu'un calcul en mois et années, donc très limité en effet
mais @sylvanu m'a bien aidé là, c'est top
bonne journée et bon WE par avance !
 

TooFatBoy

XLDnaute Barbatruc
oui je n'ai qu'un calcul en mois et années, donc très limité en effet
mais @sylvanu m'a bien aidé là, c'est top
J'ai dit que les durées semblaient être arrondies au mois, mais elles sont peut-être calculées en "mois entamé", ou en "mois révolu", ce qui voudrait dire que ton calcul serait juste à plus ou moins un mois.

Donc tu sais qu'une personne est née entre le 25 novembre et le 25 janvier, par exemple. Tu trouves vraiment que c'est top ??? 🤔

Demande plutôt les dates de naissance au service initial, ce sera plus sûr.
 

Daniel200666

XLDnaute Junior
J'ai dit que les durées semblaient être arrondies au mois, mais elles sont peut-être calculées en "mois entamé", ou en "mois révolu", ce qui voudrait dire que ton calcul serait juste à plus ou moins un mois.

Donc tu sais qu'une personne est née entre le 25 novembre et le 25 janvier, par exemple. Tu trouves vraiment que c'est top ??? 🤔

Demande plutôt les dates de naissance au service initial, ce sera plus sûr.
oui mais il s'agit pour eux de données RGPD.... donc j'essaie de trouver une autre solution pour, dans mon département, créer un dossier pour prévoir les départs en retraite et pouvoir embaucher au plus juste et au mieux par un système de tuilage ( 6 mois de double commande, par exemple)
donc oui, pas top, mais pas d'autres solutions à ce stade
en tout cas merci beaucoup de votre aide @TooFatBoy
 

Discussions similaires

Réponses
6
Affichages
408