Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

contenu de variable = nom object

  • Initiateur de la discussion Initiateur de la discussion Pyrof
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Pyrof

XLDnaute Occasionnel
Bonjour,

En vba, pour activer une feuille (un onglet), on a la commande sheets("Nom de ma feuille").select

Le problème est que si quelqu'un change le nom, la macro bug : normal.

Dans l'environnement vba on clique sur une feuille on a :

Feuil1(Feuil1)
Feuil2(Feuil2)
Feuil3(Feuil3)
ThisWorkBook

Si dans excel on fait renommer l'onglet en TOTO on obtient :

Feuil1(TOTO)
Feuil2(Feuil2)
Feuil3(Feuil3)
ThisWorkBook

Maintenant par vba pour activer la feuille on a les solutions :

sheets("TOTO").select
Feuil1.select

On peut changer le nom Feuil1 en sélectionnant dans l'explorer de projets puis sur F4, et on peut retrouver les noms Feuil1 et TOTO.
Si on change Feuil1 en ma_feuille

En vb on peut faire ma_feuille.select ou sheets("TOTO").select, la première solution ne pose plus de problème si on change le nom de l'onglet.

Voici enfin mon problème

ma_var="TOTO"
sheets(ma_var).select --------------> ça fonctionne

ma_var="ma_feuille"
sheets(ma_var).select --------------> ça bug

je ne peux pas écriée ma_var.select.

En fait je voudrais transformer le contenu d'un variable en nom d'Object
Voilà, ce fut long, toutes mes excuses

Ceci a pour but que dans des développements complexes, le nom apparent des onglets n'est pas utilisé dans les macros : sécurité.

Bonne journée
 
Re : contenu de variable = nom object

Re

pas sur d'avoir tout suivi, après la bataille sans doute, mais une solution pour activer une feuille à partir de son "codename" mis dans une variable :

Code:
Dim cn As String, n As Byte
n = 2
cn = "Ma_Feuille" & n
Application.VBE.ActiveVBProject.VBComponents(cn).Activate

a voir... active la feuille "toto" dont le codename = Ma_Feuille2

@+

Edition : faute de frappe dans la déclaration stringn au lieu string...
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
877
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…