OVH Cloud OVH Cloud

sélection de feuille de calcul en VBA

5 réponses
Avatar
Caribou
Bonsoir à tous,
Je souhaite sélectionner en VBA une feuille de calcul, non pas avec le nom
de l'onglet, mais avec la propriété (Name) de la fenêtre de propriétés de
VBA.

En clair, j'ai dans un classeur une feuille dont l'onglet s'appelle Feuil1,
mais dont j'ai défini la propriété Name comme TOTO

Sheets("toto").select

ou encore le même sans les guillemets de fonctionne pas (erreur d'exec 9 /
l'indice n'appartient pas à la sélection)

Comment faire pour sélectionner cette feuille ?

Merci


--


--- Site Perso : http://anthop.free.fr ---

5 réponses

Avatar
Pascal Engelmajer
Salut,
il semble que la modification de (Name) n'a pas d'effet.
il faut modifier Name (sans les parenthèses)...
il serait curieux qu'il puisse exister deux propriété "Name" pour un seul
objet
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Caribou" a écrit dans le message de news:
3ff1eaab$0$17121$
Bonsoir à tous,
Je souhaite sélectionner en VBA une feuille de calcul, non pas avec le nom
de l'onglet, mais avec la propriété (Name) de la fenêtre de propriétés de
VBA.

En clair, j'ai dans un classeur une feuille dont l'onglet s'appelle
Feuil1,

mais dont j'ai défini la propriété Name comme TOTO

Sheets("toto").select

ou encore le même sans les guillemets de fonctionne pas (erreur d'exec 9 /
l'indice n'appartient pas à la sélection)

Comment faire pour sélectionner cette feuille ?

Merci


--


--- Site Perso : http://anthop.free.fr ---




Avatar
Caribou
Hélas, lorsque je modifie NAME, ça modifie aussi le nom de l'onglet
Or, je veux des noms différents
En fait, l'idée, c'est d'avoir des noms explicites dans mes onglets, mais
des (name) de type aaa1 aaa2 aaa3 .....

Ainsi, pour faire une sélection de plusieurs feuilles en vue d'une
suppression par exemple, je pourrai utiliser
for i = 2 To 8
Sheets("aaa" & i).Select
Next i

Pour sélectionner les feuilles aaa1 à aaa8

Donc pour cela, il faut que je puisse sélectionner sur (name)



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
il semble que la modification de (Name) n'a pas d'effet.
il faut modifier Name (sans les parenthèses)...
il serait curieux qu'il puisse exister deux propriété "Name" pour un seul
objet
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Caribou" a écrit dans le message de news:
3ff1eaab$0$17121$
Bonsoir à tous,
Je souhaite sélectionner en VBA une feuille de calcul, non pas avec le
nom


de l'onglet, mais avec la propriété (Name) de la fenêtre de propriétés
de


VBA.

En clair, j'ai dans un classeur une feuille dont l'onglet s'appelle
Feuil1,

mais dont j'ai défini la propriété Name comme TOTO

Sheets("toto").select

ou encore le même sans les guillemets de fonctionne pas (erreur d'exec 9
/


l'indice n'appartient pas à la sélection)

Comment faire pour sélectionner cette feuille ?

Merci


--


--- Site Perso : http://anthop.free.fr ---








Avatar
Maxence HUBICHE
Bonsoir,

la propriété Name correspond en fait au caption des autres objets : le texte
écrit dessus. donc l'onglet
La propriété (Name) est le CodeName, donc le nom réel de l'objet.
Lorsque tu veux utiliser le CodeName (Nom pour le Code ) pour selectionner
ta feuille, il te suffitde d'utiliser directement la méthode voulue après le
CodeName.

Ainsi, si ton CodeName est Toto, il te suffit de faire :

Toto.Select

Voilà :)

--
----------------------------------------------------------------------------
-
Maxence HUBICHE
Formateur et développeur indépendant
Modérateur/rédacteur sur http://www.developpez.com

"Caribou" a écrit dans le message de news:
3ff1f333$0$17107$
Hélas, lorsque je modifie NAME, ça modifie aussi le nom de l'onglet
Or, je veux des noms différents
En fait, l'idée, c'est d'avoir des noms explicites dans mes onglets, mais
des (name) de type aaa1 aaa2 aaa3 .....

Ainsi, pour faire une sélection de plusieurs feuilles en vue d'une
suppression par exemple, je pourrai utiliser
for i = 2 To 8
Sheets("aaa" & i).Select
Next i

Pour sélectionner les feuilles aaa1 à aaa8

Donc pour cela, il faut que je puisse sélectionner sur (name)



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
il semble que la modification de (Name) n'a pas d'effet.
il faut modifier Name (sans les parenthèses)...
il serait curieux qu'il puisse exister deux propriété "Name" pour un
seul


objet
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Caribou" a écrit dans le message de
news:


3ff1eaab$0$17121$
Bonsoir à tous,
Je souhaite sélectionner en VBA une feuille de calcul, non pas avec le
nom


de l'onglet, mais avec la propriété (Name) de la fenêtre de propriétés
de


VBA.

En clair, j'ai dans un classeur une feuille dont l'onglet s'appelle
Feuil1,

mais dont j'ai défini la propriété Name comme TOTO

Sheets("toto").select

ou encore le même sans les guillemets de fonctionne pas (erreur d'exec
9



/
l'indice n'appartient pas à la sélection)

Comment faire pour sélectionner cette feuille ?

Merci


--


--- Site Perso : http://anthop.free.fr ---












Avatar
michdenis
Bonjour Caribou,

Pour pouvoir boucler sur la propriété "CodeName" comme ton exemple le stipule, tu dois utiliser quelque chose comme ceci :

En supposant que les "CodeName" de tes feuilles ont été défini comme suit :

aaa + un index soit : aaa1 , aaa2 , aaa3 ... etc

'--------------------------------
Sub SupprimerFeuilleAPartirDeLaPropriétéName()
Dim B as String, A as Integer

Application.DisplayAlerts = False
For A = 1 To 12
B = Worksheets(ThisWorkbook.VBProject. _
VBComponents("aaa" & A).Properties("Index")).Name
Worksheets(B).Delete
Next
Application.DisplayAlerts = True

End Sub
'--------------------------------

On ne peut utiliser le type de syntaxe de ton exemple.


Salutations!



"Caribou" a écrit dans le message de news:3ff1f333$0$17107$
Hélas, lorsque je modifie NAME, ça modifie aussi le nom de l'onglet
Or, je veux des noms différents
En fait, l'idée, c'est d'avoir des noms explicites dans mes onglets, mais
des (name) de type aaa1 aaa2 aaa3 .....

Ainsi, pour faire une sélection de plusieurs feuilles en vue d'une
suppression par exemple, je pourrai utiliser
for i = 2 To 8
Sheets("aaa" & i).Select
Next i

Pour sélectionner les feuilles aaa1 à aaa8

Donc pour cela, il faut que je puisse sélectionner sur (name)



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
il semble que la modification de (Name) n'a pas d'effet.
il faut modifier Name (sans les parenthèses)...
il serait curieux qu'il puisse exister deux propriété "Name" pour un seul
objet
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Caribou" a écrit dans le message de news:
3ff1eaab$0$17121$
Bonsoir à tous,
Je souhaite sélectionner en VBA une feuille de calcul, non pas avec le
nom


de l'onglet, mais avec la propriété (Name) de la fenêtre de propriétés
de


VBA.

En clair, j'ai dans un classeur une feuille dont l'onglet s'appelle
Feuil1,

mais dont j'ai défini la propriété Name comme TOTO

Sheets("toto").select

ou encore le même sans les guillemets de fonctionne pas (erreur d'exec 9
/


l'indice n'appartient pas à la sélection)

Comment faire pour sélectionner cette feuille ?

Merci


--


--- Site Perso : http://anthop.free.fr ---








Avatar
Caribou
Merci pour vos réponses !!!

Bon réveillon


"michdenis" a écrit dans le message de
news:%23kH8$
Bonjour Caribou,

Pour pouvoir boucler sur la propriété "CodeName" comme ton exemple le
stipule, tu dois utiliser quelque chose comme ceci :


En supposant que les "CodeName" de tes feuilles ont été défini comme suit
:


aaa + un index soit : aaa1 , aaa2 , aaa3 ... etc

'--------------------------------
Sub SupprimerFeuilleAPartirDeLaPropriétéName()
Dim B as String, A as Integer

Application.DisplayAlerts = False
For A = 1 To 12
B = Worksheets(ThisWorkbook.VBProject. _
VBComponents("aaa" & A).Properties("Index")).Name
Worksheets(B).Delete
Next
Application.DisplayAlerts = True

End Sub
'--------------------------------

On ne peut utiliser le type de syntaxe de ton exemple.


Salutations!



"Caribou" a écrit dans le message de
news:3ff1f333$0$17107$

Hélas, lorsque je modifie NAME, ça modifie aussi le nom de l'onglet
Or, je veux des noms différents
En fait, l'idée, c'est d'avoir des noms explicites dans mes onglets, mais
des (name) de type aaa1 aaa2 aaa3 .....

Ainsi, pour faire une sélection de plusieurs feuilles en vue d'une
suppression par exemple, je pourrai utiliser
for i = 2 To 8
Sheets("aaa" & i).Select
Next i

Pour sélectionner les feuilles aaa1 à aaa8

Donc pour cela, il faut que je puisse sélectionner sur (name)



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
il semble que la modification de (Name) n'a pas d'effet.
il faut modifier Name (sans les parenthèses)...
il serait curieux qu'il puisse exister deux propriété "Name" pour un
seul


objet
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Caribou" a écrit dans le message de
news:


3ff1eaab$0$17121$
Bonsoir à tous,
Je souhaite sélectionner en VBA une feuille de calcul, non pas avec le
nom


de l'onglet, mais avec la propriété (Name) de la fenêtre de propriétés
de


VBA.

En clair, j'ai dans un classeur une feuille dont l'onglet s'appelle
Feuil1,

mais dont j'ai défini la propriété Name comme TOTO

Sheets("toto").select

ou encore le même sans les guillemets de fonctionne pas (erreur d'exec
9



/
l'indice n'appartient pas à la sélection)

Comment faire pour sélectionner cette feuille ?

Merci


--


--- Site Perso : http://anthop.free.fr ---