Calcul de l'âge dans un commentaire

Jouxte

XLDnaute Occasionnel
Bonjour à toutes et tous,

Dans mon tableau les dates de naissance sont en colonne F
J'aurais souhaité pouvoir intégrer en automatique un commentaire qui me donne l'âge pour une date de naissance donnée.
Le format serait par exemple :
25 ans 0 jour
25 ans 1 mois 1 jour
25 ans 1 mois 2 jours
Par avance merci pour votre aide.
 

Pièces jointes

  • Test commentaire age.xlsx
    9.7 KB · Affichages: 15

Modeste geedee

XLDnaute Barbatruc
Bonsour® PierreJean
Bonjour pierrejean,

Est-il possible de faire pour que l'affichage se fasse au survol de la cellule ?
:( A part l'affichage de commentaire il n'y a pas d'événement lié au survol d'une cellule...
autre formulation sans appel à d'autres fonctionnalités non native
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 6 And Target.Cells.Count = 1 Then
        Dim age As Long, a, m, j
        age = Now - Target.Value
        a = Int(age / 365.25)
        m = Int((age / (365.25 / 12)) Mod 12)
                    'j=int(age mod(365.25/12))
                    ' === !!!!! Mod VBA arrondi les nombres à virgules flottantes à des nombres entiers
        j = Int(age - (365.25 / 12) * Int(age / (365.25 / 12)))
        On Error Resume Next
        Target.AddComment
        Target.Comment.Text Text:= _
                IIf(a > 0, a & IIf(a > 1, " ans ", " an "), "") _
                & IIf(m > 0, m & " mois ", "") _
                & IIf(j > 0, j & IIf(j > 1, " jrs", " jr"), "")
End If

End Sub
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour Modeste geedee,
Le code indique une erreur d'une journée.

si l'on tape 05/11/1955 le calcul dans le commentaire donne 63 ans 1 jr or on devrait obtenir 63 ans.
:rolleyes: ça dépend de la valeur que tu accordes à une année (365 ou 366 jours)
peut-être aussi ton heure de naissance est antérieure à l'heure de consultation :p

mois et années ne sont pas des constantes arithmétiques !!!
ce découpage en années mois et jours n'est qu'une satisfaction visuelle
seule la valeur en jours représente l'age !
soit 23011 jours depuis 05/11/1955

la fonction proposée utilise les valeurs mathématiques moyennes d'une année et mois exprimées en jours et fraction de jours
i.e : 365.25 j et 30.4375 j
 
Dernière édition:

Jouxte

XLDnaute Occasionnel
Bonjour à toutes et tous, Bonjour pierrejean,

J'utilise la macro de pierrejean au post #2.
Y a-t-il moyen de faire pour que les ages dans les commentaires s'actualisent à chaque activation de la feuille.

Par avance merci pour vos réponses.
 

Discussions similaires

Haut Bas