Gestionnaire des noms

Résolu/Fermé
mchotard Messages postés 415 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 18 mars 2024 - 2 déc. 2014 à 12:09
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 - 2 déc. 2014 à 21:37
Bonjour à vous tous.

J'ai une liste de noms qui me sert pour ma liste déroulante de la validation des données dans une userform que j'ai nommé "NOM" dans le gestionnaire des noms et qui correspond au cellule A1: A25
Si je rajoute deux noms, il faut penser aller modifier le gestionnaire de noms pour qu'il les prenne en compte et que la référence devienne A1: A27.
Est-t-il possible de créer une macro pour automatiser cette mise à jour et l'inclure dans une autre macro que j'utilise.

Suis-je clair ?
Merci
A voir également:

8 réponses

Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
2 déc. 2014 à 12:19
Bonjour,

Tu n'as pas besoin de créer une macro pour cela, à partir du gestionnaire de noms, tu nomme ton champ exemple nom et tu veux faire référence à une plage exemple Feuil1 cellule de A1 à A dernière valeur

la formule du à saisir dans le gestionnaire est

=DECALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A))

et ta liste de validation s'adaptera automatiquement
0
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
2 déc. 2014 à 12:20
Bonjour

Pour éviter ça, insérer les cellules à l'intérieur de votre liste les adresses de la liste suivront
0
mchotard Messages postés 415 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 18 mars 2024 38
2 déc. 2014 à 13:18
Merci les amis
MIKE-31, ta solution est super. Puis-je te demander pourquoi il faut ;;;. Et est-ce que cette formule peut s'adapter à n'importe quelle référence de cellule dans une macro.
merci aussi à Philoi10120
A+
Cdlt
0
mchotard Messages postés 415 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 18 mars 2024 38
2 déc. 2014 à 18:41
MIKE et les utares re salut

excuse moi de te déranger à nouveau. D'une part je viens en propulsant les aide excel de comprendre pourquoi on met ;;; dans la formule que tu viens de me proposer.
J'aurais une autre demande
Comment puis je remplacer les référence "A2:A34" dans la formule ci dessous pour que les nouvelles lignes insérer dans mon tableau puisse être pris en compte systématiquement dans mon tri.
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range( _
"A2:A34"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
Merci si tu peux encore m'ider
CDLT
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
2 déc. 2014 à 18:58
Bonjour

Si on prend pour la liste "nom" comme proposé par Mike-31

ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range( _
"nom"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
2 déc. 2014 à 19:34
Re,

Ne te complique pas , fait comme cela

Worksheets("Feuil1").Range("A2:A" & Range("A65536").End(xlUp).Row).Sort Key1:=Range("A2")

explique ce que tu as trouvé comme explication sur le trois ;;; voir si c'est ça
0
mchotard Messages postés 415 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 18 mars 2024 38
2 déc. 2014 à 19:42
MIKE-31
Merci
mon cher maître voilà ce que j'ai cru comprendre
si je mets ;1;2; je vais décaler d'une ligne et de 2 colonnes
en mettant;0;0; ou tout simplement ;;; je reste sur la même colonne.
ai-je 20/20

merci pour tout et a+
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié par Mike-31 le 2/12/2014 à 21:46
Re,

oui c'est cela, en fait il n'y a pas de déplacement on reste sur la même cellule.
entre le premier ; et le second ; désigne la ligne et entre le second et le troisième ; désigne la colonne ;;;
en fait pour tester la fonction saisi une valeur dans chaque cellule d'une plage en A1 à D10

dans une cellule exemple en F5 écrit celle formule
=DECALER(Feuil1!$A$1;;;)
puis change les valeurs entre les ;

comme
=DECALER(Feuil1!$A$1;2;1;)

etc ...
et regarde la valeur que te retourne la formule

=NBVAL(Feuil1!$A:$A) retourne le nombre de valeur dans la colonne
si tu as des valeurs jusqu'à la cellule A10, =NBVAL(Feuil1!$A:$A) retournera 10

le résultat obtenu par la formule est donc A1:A NBVAL(Feuil1!$A:$A) en clair A1:A10

si tu colle cette formule dans une cellule de la première ligne
=DECALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A))
et incrémente là vers les bas
la formule te retournera la valeur qui se trouve sur la même ligne colonne A et se mettra en erreur lorsqu'elle rencontrera une cellule vide en colonne A et retournera #VALEUR!

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0