EXCEL VB - activer une feuille à nom variable [Résolu/Fermé]

Signaler
-
 Khairi -
Bonjour,

Dans mon classeur, j'ai une feuille qui est nommée par macro à l'ouverture du classeur par le texte présent en D3.

A la fin d'une autre procédure via une macro, j'aimerais que cette feuille en question soit affichée.

Le problème est que ce nom varie, et que je ne sais pas comment l'écrire dans VB.

j'ai bien essayé des trucs du genre:

sheets("D3").activate

mais sans succès.

merci pour votre aide

bob

7 réponses

Messages postés
4237
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 235
Bonsoir,

si je comprends bien ton problème, tu souhaites pouvoir activer une feuille par le biais de VBA, sachant que le nom de cette feuille est contenu dans la cellule D3 ?
A mon avis, la syntaxe serait alors :
Sheets.(Range("D3").Value).Activate

Essaie déjà ceci, je pense que ça devrait marcher.

Cordialement.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57347 internautes nous ont dit merci ce mois-ci

Messages postés
23398
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 juillet 2020
6 256
Bonsoir,

Sans tester car je dois partir je l'affecterai à une variable au moment de sa création par :
dim sh1 as worksheet
set sh1=worksheets([D3])
Si elle doit être manipulée dans plusieurs sub il faut déclarer sh1 hors d'un sub et la libérer en fin de programme par sh1= nothing
ensuite sh1.activate

eric

edit: pour la solution du post 1 il faut que tu sois sûr que la feuille active soit celle ayant le nom en D3 sinon mettre worksheets("nom_de_cette_feuille").[D3].value
merci beaucoup a vous deux.

Vs deux solution fonctionne et merci pour ton dernier point erriiiic.

Très bonne soirée. Merci pour votre aide...
Bonjour
dans mon classeur excel j'ai un petit problème c'est que je peux pas insérer une nouvelle feuil
aide moi et merci
Messages postés
4237
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 235
Bonjour,

merci de ne pas remonter un sujet qui date d'il y a un an et demi pour poser ta question, surtout qu'elle n'a pas vraiment rapport avec le sujet que tu viens de faire remonter à la surface.

Cordialement.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 092
bonjour

comment connaitre l'index d'une feuille? ou regarder?

Il faut regarder les onglets car c'est tout bêtement l'ordre d'affichage des onglets.

Gros inconvénient afférent c'est qu'il suffit de changer l'ordre pour que le nom ne soit plus correct !
ouille! c'est embêtant!

merci pour l'info...

entre temps j'ai vu que les index des feuilles étaient visible dans VB dans le "menu" de gauche.

merci bcp à tous!

PS: si vous avez 2 minutes, j'ai un autre post à quelques minutes d'intervalle avec celui ci...
Messages postés
23398
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 juillet 2020
6 256
Ce n'est pas l'index que tu vois à gauche, c'est le nom de la feuille dans vba suivi, entre parenthèse, du nom de ta feuille dans le classeur (une curiosité excel). Base toi toujours sur ce dernier pour worksheets(...)
Si ta Feuil1 tu la renommes Feuil4, à gauche tu liras Feuil1(Feuil4), et si tu la mets en 3ème position dans le classeur son index sera 3.
ok merci eriiiiic pour le complément d'info (pour la correction! :-) )

je vais faire attention.

merci!
> bobie
Eriiic ceci est directement lié à mon autre post...

Comment connaitre l'index de ma feuille si j'ai 12 feuilles cachées?

Ces feuilles cachées sont elles placées derrière ou devant? C'est pas facile de connaitre l' index de ma feuille!

merci bcp
Messages postés
23398
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 juillet 2020
6 256
Il faut travailler avec les noms des feuilles...
Sinon il suffit de déplacer ou créer une feuille et plus rien ne marche.
On ne travaille avec les index que lorsqu'on sait exactement ce que l'on fait.
eric
je sais exactement ce que je fais!

le nom de ma feuille est variable, c'est pourquoi j'ai besoin de la specifier par son index dans VB!
Messages postés
23398
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 juillet 2020
6 256
Si tu sais exactement ce que tu fais tu connais son index ou bien son nom.
Et si tu connais son nom pas besoin de l'index mais bon...
i = Sheets("Feuil1").Index

ou bien tu balayes tout tes index (donc jusqu'à worksheets.count) tu regardes si le nom (.name) te convient

eric
merci bien!
bob
Bonjour
J'ai un classeur a plusieurs feuille excel,je veux ,sur VBA, enregistrer une copie de facture qui est saisie sur la feuille N°1 avec le nom de son Numéro qui existe dans la case" H8 ".
En bref a chaque fois que je fait l'enregistrement de facture il prend tous le classeur,je veux seulement la feuille 1
Messages postés
146
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
5 juin 2012
57
Bonsoir,

Peut-être tout simplement en désignant la feuille par son index.

Ex : Sheets(1).Activate


Cordialement.
merci papou!

je me disais bien qu'un feuille avait un nom générique...

comment connaitre l'index d'une feuille? ou regarder?

merci