Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Calcul age dans userforme

Domstras

XLDnaute Nouveau
Bonjour,

Pourrais-je avoir votre aide merci

J’ai un feuille de carnet d’adresse remplis par un userforme (Ajout_Contact) avec un textbox (TextBox6) date de naissance, je voudrais avoir l’âge qui s’affiche dans un textbox (TextBox7) âges et qu’il soit transféré en même temps que tous les autre a l’appuis du bouton ajouter (Bt_Ajouter)

J’ai cette formule mais je n’arrive pas à l’adapter dans user forme.

= DATEDIF(C4;aujourdhui(),”Y”)

MERCI A TOUS
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Domstras, et bienvenu sur XLD,
N'oubliez pas qu'un TextBox délivre un texte et non un nombre.
Une possibilité :
VB:
UserForm1.TextBox7 = Format((Date - CDate(UserForm1.TextBox6)) / 365.25, "0")
"Cdate" convertit un texte en date.
A modifier si vous voulez utiliser Datedif.
 

vgendron

XLDnaute Barbatruc
et bah dans ce cas. la proposition de Sylvanu est plutot claire non??
ok.. il ne te tient pas la main pour te donner TOUT le code, mais puisque que tu as déjà écrit du vba.. tu devrais pouvoir t'en sortir....
dans l'évènement _afterupdate de ton textbox 6, tu inscrits la ligne de code de sylvanu.. et voila...

sinon, moi j'aime bien utiliser cette fonction qui retourne l'age

et évidemment.. il faut aussi l'appeler dans l'évènement after update..
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous ,

Votre tableau est bancal :
La partie du haut est un tableau structuré (ce qui est plutôt bien ). La partie basse (qui contient sans doute les ajouts via le Userform sans tenir compte du fait que la tableau est un TS) ne sont pas dans le tableau structuré.

C'est à mon avis un non sens de mettre l'âge en "dur". Cela signifie que le contact aura pour l'éternité toujours le même âge. Il vaut mieux mettre une formule dans le TS (tableau structuré) qui met l'âge automatiquement à jour.
Formule en J3 pour le TS :
VB:
=SI(ESTNUM([@[Date_Naissance]]);ANNEE(AUJOURDHUI())-ANNEE([@[Date_Naissance]])-1*(DATE(ANNEE(AUJOURDHUI());MOIS(I3);JOUR([@[Date_Naissance]]))>AUJOURDHUI());"")

Formule en J14 pour la plage ordinaire (qui ne devrait pas exister -> anomalie !) :
VB:
=SI(ESTNUM(I14);ANNEE(AUJOURDHUI())-ANNEE(I14)-1*(DATE(ANNEE(AUJOURDHUI());MOIS(I14);JOUR(I14))>AUJOURDHUI());"")
 

Pièces jointes

  • Domstras- Carnet Adresse- v1.xlsm
    37.5 KB · Affichages: 7

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…