Microsoft 365 Actualiser la source d'une liste déroulante en VBA

TrXtan

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je cherche à actualiser (de manière industrielle) les sources de certaines listes déroulantes pour y inclure de nouvelles valeurs.

Contexte:
Via un fichier central, j'actualise les onglets de paramètres de plusieurs autres classeurs (qui sont la source des listes déroulantes présentes dans les autres onglets de ces classeurs). Problème: le contenu des onglets de paramètres sont actualisés, mais les nouvelles valeurs ne sont pas inclues dans les listes déroulantes des autres onglets.

Plus précisément:
J'utilise une macro qui copie-colle le contenu de mon fichier central sur les onglets paramètres de mes classeurs. J'aimerais qu'après le collage, la macro identifie les nouvelles valeurs et "élargisse" la plage source des listes déroulantes (Si une liste se sourçait sur la plage A1-A10, et que le collage a ajouté des valeurs jusqu'en A13, j'aimerais que les listes déroulantes se sourcent désormais en A1-A13).

J'ai déjà du code permettant d'identifier les colonnes dans lesquelles il y a une liste déroulante en case A1 ; puis d'étirer ladite liste jusqu'en bas de la colonne. C'est entre ces deux étapes que j'aimerais identifier et modifier la source de la liste déroulante.

Savez-vous si c'est possible ?
Suis-je assez clair dans mes explications ?

Ci-joint un fichier pour illustrer mon besoin. J'ai essayé d'élaguer au maximum pour que ce soit lisible, donc il doit manquer quelques définitions de variables et autres; mais la macro que j'ai sur mon vrai fichier fonctionne.

Merci de m'avoir lu,
Tristan H.
 

Pièces jointes

  • Exemple listes déroulantes.xlsm
    21.3 KB · Affichages: 7
Solution
Hello
il suffit de passer par les plages nommées
voir gestionnaire de nom
j'ai fait l'exercice pour la plage "Genre"
si tu ajoutes ou supprimes des éléments, la liste se met à jour toute seule de facon dynamique
attention: ne pas laisser de ligne vide DANS la liste à cause du NbVal()

ensuite, la liste de validation fait appel à la plage nommée

je te laisse faire les autres cas

vgendron

XLDnaute Barbatruc
Hello
il suffit de passer par les plages nommées
voir gestionnaire de nom
j'ai fait l'exercice pour la plage "Genre"
si tu ajoutes ou supprimes des éléments, la liste se met à jour toute seule de facon dynamique
attention: ne pas laisser de ligne vide DANS la liste à cause du NbVal()

ensuite, la liste de validation fait appel à la plage nommée

je te laisse faire les autres cas
 

Pièces jointes

  • Exemple listes déroulantes.xlsm
    19.8 KB · Affichages: 13

TrXtan

XLDnaute Nouveau
Hello
il suffit de passer par les plages nommées
voir gestionnaire de nom
j'ai fait l'exercice pour la plage "Genre"
si tu ajoutes ou supprimes des éléments, la liste se met à jour toute seule de facon dynamique
attention: ne pas laisser de ligne vide DANS la liste à cause du NbVal()

ensuite, la liste de validation fait appel à la plage nommée

je te laisse faire les autres cas
Bonjour vgendron,

Tout d'abord merci de ta réponse, je ne m'attendais pas à ce qu'elle soit aussi rapide.

J'ai appliqué ta recommandation: j'ai généralisé l'utilisation des plages nommées, ce qui a résolu mon problème, sans passer par VBA qui plus est. De plus, les plages nommées sont duplicables entre fichiers (par copie d'onglet).

Merci beaucoup, et désolé de ma relance tardive.

Tristan
 

Discussions similaires

Statistiques des forums

Discussions
311 730
Messages
2 081 981
Membres
101 855
dernier inscrit
alexis345