XL 2019 Calcul de l'âge. Résolu

Paulle

XLDnaute Occasionnel
Bonjour,

Je voudrai calculer l’âge de chaque personne.

Mais je cale quand dans les dates de naissances, les années sont inférieures à 1900.

Merci pour votre aide.
 

Pièces jointes

  • Nais01.xlsx
    17.5 KB · Affichages: 10

nauwel

XLDnaute Nouveau
Je crois que ça ne marche pas avant 1900 "Excel enregistre la date comme un nombre séquentiel : généralement sous la forme du nombre de jours depuis le 1er janvier 1900". j'avais bricolé ça avec une formule que qq m'avait passé...(je suis un grand débutant!)
 

Pièces jointes

  • Nais01(1).xlsx
    12.8 KB · Affichages: 3

patricktoulon

XLDnaute Barbatruc
Bonjour @Paulle
avant de poser une question ,il existe un moteur de recherche dans le site
en dessous 1800 se serait faux car le calendrier à changé pour certains en 17xx
je m’arrête donc à 1800
demo.gif
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir à tous,

Une solution par formule, en H3 :
Code:
=SI.CONDITIONS(F3>0;DATEDIF(SI(ESTNUM(D3);MOIS.DECALER(D3;4800);DATEVAL(GAUCHE(D3;6)&DROITE(D3;4)+400));SI(ESTNUM(F3);MOIS.DECALER(F3;4800);DATEVAL(GAUCHE(F3;6)&DROITE(F3;4)+400));"y");D3=0;"";D3>0;DATEDIF(SI(ESTNUM(D3);MOIS.DECALER(D3;4800);DATEVAL(GAUCHE(D3;6)&DROITE(D3;4)+400));MOIS.DECALER(AUJOURDHUI();4800);"y"))
A+
 

Pièces jointes

  • Nais01.xlsx
    11.8 KB · Affichages: 5

job75

XLDnaute Barbatruc
J'utilisais SI.CONDITIONS parce que Paulle l'utilisait dans son fichier du post #1.

Une formule bien plus simple qui fonctionne sur toutes versions Excel :
Code:
=SI(D3="";"";DATEDIF(SI(ESTNUM(D3);MOIS.DECALER(D3;4800);DATEVAL(GAUCHE(D3;6)&DROITE(D3;4)+400));SI(ESTNUM(-F3);MOIS.DECALER(SI(F3=0;AUJOURDHUI();F3);4800);DATEVAL(GAUCHE(F3;6)&DROITE(F3;4)+400));"y"))
 

Pièces jointes

  • Nais02.xlsx
    11.8 KB · Affichages: 3

patricktoulon

XLDnaute Barbatruc
re
moi j'avais fait ceci
VB:
=DATEDIF(SI(ESTNUM(CNUM(A1));CNUM(A1)+(365,25*100);DATEVAL(GAUCHE(A1;6)&DROITE(A1;4)+100));SI(ESTNUM(CNUM(B1));CNUM(B1)+(365,25*100);DATEVAL(GAUCHE(B1;6)&DROITE(B1;4)+100));"y")&" an(s)"

chez moi 2013 ESTNUM me renvoie faux même sur une date valide
demo.gif



1670364551686.png
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour,

Bah sur Excel une date valide est toujours numérique sauf si elle est au format Texte.

Par contre en VBA elle n'est pas numérique si elle est au format Date.

A+
re
Bonjour @job75 oui ben regarde
demo.gif


je viens de retaper les dates et là maintenant ça marche
avant je les avais tapé aussi
bizarre ce truc
remarque enum(cnum(A2)) permet de travailler sur une date valide meme si la cellule est en texte
 

patricktoulon

XLDnaute Barbatruc
re
bonjour @TooFatBoy
je parlais de la ligne 22/08/1930 qui est une date valide pour excel
toute les dates je l'es ai tapé a la main
et celle ci je ne sais pas pourquoi c'est mise au format text alors que je suis en format standard partout
:oops:🤔

dans tout les cas pour palier a ce soucis il est préférable d'utiliser =enum(cnum(...))
comme ça pas de soucis avec les cellules au format texte ;)
 

Discussions similaires

Réponses
7
Affichages
381

Membres actuellement en ligne

Statistiques des forums

Discussions
315 097
Messages
2 116 186
Membres
112 679
dernier inscrit
Yupanki