Rechercher : dans
Par :

EXCEL VB - activer une feuille à nom variable

Dernière réponse le 18 oct 2009 à 00:36:39 bobie, le 13 oct 2009 à 21:40:01 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Safari 532.0

Meilleures réponses pour « EXCEL VB activer une feuille à nom variable » dans :
[Excel] Chemin et nom de stockage de feuille de calcul VoirIndiquer automatiquement le chemin d'accès (path) et le nom de stockage de toute feuille de calcul Noter dans une cellule (A& par exemple) la formule : =cellule("nomfichier";A1) A chaque sauvegarde et/ou déplacement de fichier dans votre...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...
VBScript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Il s'agit en fait d'une zone de la mémoire réservée pour le stockage d'une valeur. Les...

1

chossette9, le 13 oct 2009 à 22:18:41

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. Si l'on devait enfermer tous les cons dans des placards, 
il n'y aurait plus personne pour fermer les portes.
Chossette un jour, chossette toujours !

Répondre à chossette9

2

eriiic, le 13 oct 2009 à 22:28:39

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

Répondre à eriiic

3

bobie, le 13 oct 2009 à 22:58:06

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...

Répondre à bobie

4

Papou93, le 13 oct 2009 à 23:01:08

Bonsoir,

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

Ex : Sheets(1).Activate


Cordialement.

Répondre à Papou93

5

bobie, le 13 oct 2009 à 23:04:08

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

Répondre à bobie

6

gbinforme, le 13 oct 2009 à 23:27:29

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 !
Toujours zen

Répondre à gbinforme

7

bobie, le 13 oct 2009 à 23:32:07

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...

Répondre à bobie

8

eriiic, le 13 oct 2009 à 23:43:58

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.

Répondre à eriiic

9

bobie, le 13 oct 2009 à 23:50:53

Ok merci eriiiiic pour le complément d'info (pour la correction! :-) )

je vais faire attention.

merci!

Répondre à bobie

10

bobie, le 17 oct 2009 à 20:02:16

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

Répondre à bobie

11

eriiic, le 17 oct 2009 à 20:14:08

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

Répondre à eriiic

12

bobie, le 17 oct 2009 à 20:20:43

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!

Répondre à bobie

13

eriiic, le 17 oct 2009 à 21:34:52
  • +1

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

Répondre à eriiic

14

 bobie, le 18 oct 2009 à 00:36:39

Merci bien!
bob

Répondre à bobie
Collection CommentÇaMarche.net