Microsoft 365 Copie de "noms" intenpestive lors d'une copie de feuille.

Carnould

XLDnaute Junior
Bonjour à tous,
Lors d'une copie de feuille, que ce soit manuellement ou par VBA, si cette feuille possède des listes déroulantes alimentées par des tableaux nommés (avec étendue "classeur"), le gestionnaire des noms fait apparaître une duplication de ces tableaux nommés avec à chaque fois une étendue correspondant aux nouvelles feuilles créées.
Cela n'empèche nullement le fonctionnement des listes déroulantes sur ces nouvelles feuilles mais je me retrouve avec beaucoup de noms identiques dans le gestionnaire des noms ce qui nuit à la clareté. Si je supprime manuellement ces nouveaux noms créés, le fonctionnement des listes déroulantes reste normal.

Etant donnée que je fais ces duplications (nombreuses) par VBA, existe-t-il un moyen d'éviter ces duplications de noms qui ne servent à rien du tout.

Il semblerait que ce phénomène n'existe pas si la liste déroulante est alimentée par un tableau NON nommé mais ce n'est pas ce que je souhaite.

Merci d'avance pour votre aide.

Christian
 

Carnould

XLDnaute Junior
Bonjour Dranreb
Je viens de tester ce que tu me proposais. ça donne bien un résultat identique à ce que j'ai en exploitation sur le noms avec étendue classeur ou feuille.

Donc si un nom d'étendue "Classeur" est dupliqué à cause de la copie d'une feuille, sa copie devient forcément un nom d'étendue de feuille.
Mes noms sont attachés à une feuille avec une étendue "classeur". Ce n'est pas la feuille qui contient ces noms qui est dupliquée mais une feuille possédant seulement des listes déroulantes faisant référence à une plage d'une autre feuille. Je ne vois pas pourquoi la duplication se ferait donc. Mais c'est ainsi.

Je reprends dans le classeur joint l'essai que tu m'as fait faire.
J'y ai mis dans Feuil1 un tableau nommé LstCodes. Si j'ajoute des codes, tout va bien le tableau s'autoagrandit.
Dans Feuil2 j'ai une cellule pour laquelle je veux mettre une liste déroulante de contrôle. Impossible d'y mettre le nom du tableau LstCodes comme source des données. Je peux simplement mettre une plage correspondant à ce tableau mais si j'ajoute des codes dans le tableau, la liste déroulante ne se met pas à jour seule.
Comment ferais-tu pour mettre ce tableau nommé dans la liste déroulante ? C'est le même problème que j'ai eu dans mon classeur d'exploitation et j'ai triché en définissant une tableau plus grand que la réalité afin de prévenir de l'avenir et c'est une plage et non pas un tableau nommé qui alimente la liste déroulante. Le tableau nommé perd tout son sens.
Si tu as une piste, je suis preneur
Merci d'avance
Cordialement
Christian
 

Pièces jointes

  • test.xlsm
    22.8 KB · Affichages: 6
Dernière édition:

Carnould

XLDnaute Junior
Eriiic, ta solution est celle que j'ai mise en place car elle fonctionne parfaitement comme je te l'ai dit et que tu peux constater dans le classeur que j'avais envoyé.
Ce que le proposais Dranreb c'est une démonstration de la différence de noms avec etendue feuille ou étendue classeur si tu as bien lu.
Ce que je viens de publier n'est fait que pour ma culture perso (oups ! j'ai oublié la pièce jointe)
J'espère que tu n'en prends pas "ombrage".
Cordialement
Christian
 

Dranreb

XLDnaute Barbatruc
Mes noms sont attachés à une feuille avec une étendue "classeur"
Non, c'est un contresens. Par définitionn un nom attaché à une feuille a cette feuille comme étendue.

À part ça, effectivement il ne semble pas possible de spécifier un nom de tableau ni une référence structurée à une validation de données. Mais il est possible de spécifier un nom dont la référence est structurée. Par exemple en renommant le tableau TabCodes, il est possible de définir un nom LstCode se référant à =TabCodes[Codes]
 

Carnould

XLDnaute Junior
À part ça, effectivement il ne semble pas possible de spécifier un nom de tableau ni une référence structurée à une validation de données. Mais il est possible de spécifier un nom dont la référence est structurée. Par exemple en renommant le tableau TabCodes, il est possible de définir un nom LstCode se référant à =TabCodes[Codes]
Excellente astuce que je garde pour l'avenir, ça fonctionne bien.
Merci Danreb et Eriiic pour vos précieux conseils et pour le temps consacré.
Cordialement
Christian
 

Discussions similaires

Réponses
12
Affichages
439

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi