Gestionnaire de noms - Donner un nom à une zone référence

Bonjour à tous

Je suis en train d'éditer une base de données avec des ajouts/suppressions de colonnes.

Mon problème est le suivant:

J'ai des nom de référence pour certaines zones (ex. A2:A2000 = NoTel.)

Je souhaiterais que le nom de la zone puisse être égale au texte contenu dans la cellule A1, de telle manière que si j'ajoute ou supprime des colonnes, le nom (donc la cellule contenant le nom, soit adapté à chaque fois.

Est-ce que quelqu'un peut m'aiguiller ?

D'avance merci.

Cordialement

Willau

Bonjour Willau, bonjour le forum,

Tu veux ça que pour la colonne A ou pour toutes les colonnes de ton tableau ?

Bonjour ThauThème

En fait c'est pour tout le tableau.
Donc chaque colonnes de données.

Merci pour ton intérêt.
Cordialement.

Willau

ThauThème
J'ai oublié de préciser…
En ligne 1, les colonnes seront appelées _col001, _col002, _col003, etc.

J'intègre une formule de type =A1+1 …. ainsi je peux facilement mettre à jour tous mes "titres" ou noms de zone.

Bonjour,

Pour ça, il vous faut un tableau structuré. Le nom de la zone sera égal à NOMTABLEAU[NOMCOLONNE].

Cdlt,

Bonjour 3 GB

Merci pour ta contribution.
Je n'ai malheureusement pas saisi comment procédé avec ta solution. (manque d'explication pour mon niveau).

Enfin, ma ligne 1 ne fait pas partie du tableau, ni de la zone référence.

Salutations.

Willau

Re,

Essaie le code ci-dessous. Attention il commence par supprimer tous les noms avant de recréer en fonction du tableau :

Option Explicit

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim N As Name 'déclare la variable N (Nom)
Dim I As Integer 'déclare la variable I (Incrément)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For Each N In Names 'boucle sur tous les noms N du classeur
    N.Delete 'supprime le nom
Next N 'prochain nom de la boucle
For I = 1 To UBound(TV, 2) 'boucle sur toutes les colonnes du tableau des valeurs TV
    DL = O.Cells(Application.Rows.Count, I).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne
    'renomme la plage des lignes 2 à DL de la colonne avec le nom inscrit en ligne 1 (s'il y a des espaces ils sont remplacés par des _)
    O.Range(O.Cells(2, I), O.Cells(DL, I)).Name = Replace(O.Cells(1, I).Value, " ", "_", 1)
Next I 'prochaine colonne de la boucle
End Sub

En fait, il faut aller dans insertion, sélectionner le tableau entier (en-tetes comprises), cliquer sur tableau, avec en-tetes, le renommer et voilà.

Ensuite, le tableau sera nommé et joli (la base pour une base) et les colonnes seront automatiquement des plages nommées. On pourra alors facilement utiliser la fonction INDIRECT par exemple.

Et pour renommer en cas de suppression ou d'ajout, on pourrait éventuellement penser à une boucle qui parcourt l'entête et nomme suivant l'indice de la colonne.

Rechercher des sujets similaires à "gestionnaire noms donner nom zone reference"