Formule excel

Résolu
am59 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
am59 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je dois calculer l'age d'une personne avec sa date de naissance et la date du jour !
Je reussis a le faire sous vba mais dans ma cellule excel j'obtiens #nom?
Je pense que c'est parcequ'il ne reconnait pas mes variables mais je ne sais pas comment faire pour résoudre le problème voici mon code
 Dim CelDateNaissance As String
 Dim DateNaissance As Long

 CelDateNaissance = Sheets("Application").cmbDateNaissance.Value
 DateNaissance = Sheets("Lecteur").Cells.Range((CelDateNaissance & k))
            MsgBox DateNaissance
        Sheets("Statistiques").Select
               
                Sheets("Statistiques").Cells.Range("BA" & k) = "=INT( (NOW()- DateNaissance)/365.25 & k)"
                MsgBox Int((Now() - DateNaissance) / 365.25 & k)


C'est surement ma variable DateNaissance mais mon msgbox me renvois bien l'age de la personne c'est juste dans l'affichage dans la cellule que ça ne fonctionne pas
Avez vous une solution??
merci

2 réponses

biloue Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   7
 
Bonjour,

Il faut que tu fasse le calcul dans le script VBA que tu le mette dans une variable toto et que tu recopie la variable dans la cellule de ton choix.
Les modifications sont en gras

Dim CelDateNaissance As String
Dim DateNaissance As Long
Dim toto as integer


CelDateNaissance = Sheets("Application").cmbDateNaissance.Value
DateNaissance = Sheets("Lecteur").Cells.Range((CelDateNaissance & k))
MsgBox DateNaissance
Sheets("Statistiques").Select

MsgBox Int((Now() - DateNaissance) / 365.25 & k)
toto = Int((Now() - DateNaissance) / 365.25 & k)
Sheets("Statistiques").Cells.Range("BA" & k) = = toto


Bon courage

Biloue
0
am59 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci beaucoup pour ta réponse !!!
ça fonctionne nikel !!!
Balaise !!

@ bientot
am
0