RE William
Ok pigé !!
Méthode 1 (ma préférée, plus rien à faire une fois mise en place)
Le plus simple dans ce cas est d'écrire tes macros ayant référence à des feuilles en utilisant l'index de la feuille
et non le nom.
Exemple sur un classeur vierge :
Sheets(1).Select
ou
Sheets("Feuil1").Select
Auront le même "impact"
L'index des feuilles est attribué en fonction de
l'emplacement de la feuille dans le workbook de gauche à droite par les noms de feuilles dans l'ordre des onglets de noms.
Tu n'auras pas à refaire quoique ce soit dans tes macro de cette manière. Seule contrainte => Ne pas déplacer les Feuilles
Méthode 2 [/i](alternative par variable publique)[/i]
Tu prends un nouveau Module Standard (pas ThisWorkBook)
En Tête du module : (en dehors de toute Sub)
Public X as String
Dans la Sub de la première macro que tu lances, en début du code de celle-ci :
X = "EM EC 02-03"
Ou encore si tu ne veux pas travailler sur les code directement
X = Sheets("LesNomsDeFeuilles").Range("B1")
Evidemment dans cette feuille "LesNomsDeFeuilles" tu mettras à jour tes nom de feuilles... (qui peuvent être eux même écrit par macro style celle au dessus mais à l'envers... lol... Mais ce serait faire de nouveau une liste de noms basée sur l'ordre de l'emplacement des feuilles..... Donc pratiquement équivalente à INDEX donc la Méthode 1 est plus simple)
Méthode 3 (je ne travaille pas avec mais ce peut être TA solution)
Utiliser les Nom de Feuille => Nom D'Objet (par l'explorateur de projet, sélectionner la feuille, puis F4 et changer son nom)
Ainsi quoique qu'il arrive l'Index ou le Nom de Feuille (Onglets) peuvent changer... VBA fera référence troujours à la bonne feuille... La syntax est différente par contre :
Feuil1.Select
(NB Feuil1 n'a rien à voir avec le nom d'onglet "Feuil1", voir par l'explorateur de projet pour comprendre...
Voilà William avec ces trois méthodes je pense que tu trouveras TA solution.
Bonne Journée
@+Thierry