Nommer plage automatiquement

Bonjour à tous !

Je cherche à automatiser une page d'un fichier Excel (fichier1) qui contiendra des listes (listes déroulantes en cascades avec la fonction INDIRECT()).

Ces listes sont copiées d'un autre fichier Excel (fichier2) avec une liaison, ce qui me permet de modifier le contenu des listes ou d'ajouter de nouvelles listes sans avoir à modifier le fichier1.

Cependant, la copie avec liaison copie les données mais ne copie pas les noms des plages.

Je n'ai pas trouvé de solution à ce problème, je cherche donc à le contourner en programmant un nommage automatique des plages dans mon fichier1

J'ai donc plusieurs listes qui se présentent comme ci-dessous:

Nomdelaplage

Jacques

Henry

Martine

Existe-t-il une façon de nommer automatiquement la liste en dessous du Nomdelaplage avec ce nom, sachant que je veux pouvoir augmenter la liste et ajouter de nouvelles listes ?

Merci d'avance pour votre aide !

Bonjour,

un exemple qui te crée des noms dynamiques (formule de type =DECALER('Noms Dynamiques'!$A$2;;;NBVAL('Noms Dynamiques'!$A:$A)-1;1))

Ainsi les ajouts/suppressions sont pris en compte automatiquement.

Rend le nom valide si besoin en changeant partiellement le titre. Par exemple les espaces sont remplacés par _

2019 10 14 16 38 23

eric

Bonjour Eric,

Merci pour ta réponse.

Cependant, si je ne me trompe pas, je ne peux pas utiliser la fonction DECALER() dans mon cas.

Je n'avais pas expliqué pourquoi j'utilisais la fonction INDIRECT() plutôt que DECALER().

Les listes sont regroupés par catégories. Chaque catégorie est sélectionnée dans une case.

La première case à une liste fixe. La seconde doit afficher une liste en fonction de la première, et la troisième en fonction de la seconde (c'est ce que j'appelle liste déroulante en cascade).

Vu que les listes ne sont pas fixes pour une case, je dois utiliser la fonction INDIRECT avec des noms de plages de données.

Bonjour,

Ne mélange pas tout.

Decaler() c'est pour la définition des noms des listes. Ca les rend dynamiques contrairement à une déclaration fixe.

Ce fichier crée les noms (ce que tu demandais) et c'est tout.

Il faut toujours que tu utilises Indirect() pour utiliser tel ou tel nom de liste si elles sont en cascades.

eric

Bonjour Eric,

Effectivement, comme tu l'as compris j'ai du mal avec la fonction DECALER()

Du coup j'utilise la macro que tu m'as envoyé, j'ai pu établir mes listes dynamiques.

Cependant, impossible d'afficher les listes alors que les listes sont bien dans le gestionnaire de noms.

En faisant quelques recherche, je suis tombé sur ça:

Indirect() n'accepte pas les noms de champ dynamiques crées avec Decaler().

Je pense qu'il va falloir que je repense ma façon de faire pour ce tableau ...

Encore merci pour ton aide !

Bonjour,

ah mince, je n'avais jamais prêté attention à ça.

Je vais ajouter une option pour choisir entre noms fixes ou dynamiques.

Pas sûr ce soir, mais ce we ça devrait aller.

eric

Bonjour,

j'ai donc ajouté à la boite de dialogue le choix Nom Dynamique (par défaut) ou Nom Fixe.

eric

Rechercher des sujets similaires à "nommer plage automatiquement"