Gérer une variable dans les noms du gestionnaire de noms

Bonsoir à tous,

Je suis en train de réaliser des tests afin d'avoir un macro qui puisse s'appliquer à plusieurs pages qui aurait une "structure commune".

Dans ces pages j'aurai des cases qui seront gérées via le gestionnaire de nom, car elles ne seront pas toujours au même endroit.

J'aimerai savoir si je peux gérer une variable dans le nom, afin d'aller chercher le bon nom en fonction de la bonne feuille.

Exemple:

- Feuille 1 -> "F1_Rm"

- Feuille 2 -> "F2_Rm"

- Feuille 3 -> "F3-Rm"

Ainsi en récupérant le nom de l'onglet je peux facilement définir une variable et je peux gérer une seule ligne de code pour toutes ces cases.

J'ai testé pas mal de variantes du style "[" & y & "_Rm]" avec y comme variable mais pour l'instant sans succès. L'un d'entre vous aurait une idée ?

Merci

Bonsoir,

avez vous essayé de définir ce nom pour la feuille et non pas pour le classeur ?

image

Ici le nom "LouReeD" je peux le définir pour le classeur ou bien pour la feuille 1 du classeur. La différence ?
Sheets("Feuil1").Range("LouReeD") est différent de Sheets("Feuil2").Range("LouReeD")

Le fichier :

Du coup même code mais pas même cellule !

@ bientôt

LouReeD

Re re re

Alors j'y ai pensé, mais certaines de ces cases sont réutilisées dans le classeur, c'est pour cela que j'avais laissé ainsi. En effet, c'est une solution, il faut que je regarde si je peux l'appliquer facilement.

I'll be back

set sh=sheets("Feuil2")

s=left(sh.name,1) & right(sh.name,1)

Ma_Valeur=range(s & "_Rm").value '(fonctionne dans un module normal, pas dans le module d'une feuille)

Bonsoir,

ou bien un tableau de correspondance avec l'index du tableau qui correspond à l'index de la feuille :

Dim Tablo(1 to 4) : Tablo(1)="F1-RM" : Tablo(2)="F2-RM" etc

Puis dans votre code "répétitif" mais en changeant de feuille avec une boucle pour l'exemple :

For i = 1 to 3
    Range(Tablo(i)).Value = "LouReeD" & i
Next i

@ bientôt

LouReeD

Bonsoir à vous deux, merci pour vos retours.

J'ai avancé et j'ai pu définir beaucoup de noms sur les feuilles, donc avec un code selon la feuille activée cela fonctionne bien. Premier problème résolu.

Pour les données que j'écris dans les feuilles, j'ai remplacé le nom de la feuille par un ActiveSheet. Second problème résolu.

Il me reste un soucis je pense

Ma liste des épaisseurs, je la récupère sur les feuilles secondaires, mais l'utilise sur la feuille principale, donc elle se doit d'être différente par feuilles. Sur mon premier test avec une seule feuille j'avais fait une simple validation de données. Mais étant donné que chaque feuille aura une liste d'épaisseurs différentes, je dois passer par le VBA pour mettre à jour la liste des épaisseurs quand je change la matière. Pour l'instant je cherche encore le code pour cela, je connais sur un userform mais dans une cellule c'est un peu une découverte, j'ai réussi à en faire une avec les matières en récupérant à l'ouverture les noms des onglets, mais pour la liste matière je n'arrive pas pour l'instant. Le code se trouve dans le module de la page "Données" du fichier joint.

5test-tables.xlsm (54.88 Ko)

Re,

Bon je bloque sur la liste déroulante avec variable.

Je bloque sur la formule pour mettre la liste des épaisseur en liste déroulante... J'ai essayé d'abord sans variable et cela fonctionne: Formula1:=("=M01_Liste_Epaisseurs")

Il me manque donc la syntaxe avec cette variable... J'ai essayéFormula1:=("" = Repère & "_Liste_Epaisseurs""") mais cela ne fonctionne pas

Essayez ceci : Formula1:=("=" & Repère & "_Liste_Epaisseurs"), c'est la variable qui doit se trouver entre les "et" d'imprimerie "&".

@ bientôt

LouReeD

Salut LouReeD,

Ça fonctionne merci je me galère à chaque fois avec cette formulation. Merci

Rechercher des sujets similaires à "gerer variable noms gestionnaire"