OVH Cloud OVH Cloud

nom de feuille dans VBA

9 réponses
Avatar
marco
Bonjour,

Dans VBA, lorsque l'on veut s=E9lectionner une feuille du=20
classeur, on l'appelle par son nom (ex : Sheets("Ma=20
feuille").Select.
Seulement, si l'utilisateur renomme la feuille, la macro=20
plante !
Y-a-t'il une mani=E8re de g=E9rer l'objet feuille sans passer=20
par le nom de l'onglet (ce qui laisserait =E0 l'utilisateur=20
tout loisir de changer le nom), et quelle syntaxe pr=E9cise=20
utiliser.

Merci et bravo =E0 tout ceux qui font vivre cet espace.

9 réponses

Avatar
Michel HOLDERITH
Salut,
soit : ActiveWindow.DisplayWorkbookTabs = False
soit tu proteges ton workbook
@+
Michel.

"marco" wrote in message
news:0ee301c3a3a6$1dcfc480$
Bonjour,

Dans VBA, lorsque l'on veut sélectionner une feuille du
classeur, on l'appelle par son nom (ex : Sheets("Ma
feuille").Select.
Seulement, si l'utilisateur renomme la feuille, la macro
plante !
Y-a-t'il une manière de gérer l'objet feuille sans passer
par le nom de l'onglet (ce qui laisserait à l'utilisateur
tout loisir de changer le nom), et quelle syntaxe précise
utiliser.

Merci et bravo à tout ceux qui font vivre cet espace.
Avatar
Dédé
Salut Marco !

Mais bien sûr !!"tu peux l'appeller par on nom de code Sheets(1) correspond
à la première feuille quelque soit son nom, son emplacement si tu la déplace
en deuxième position elle répondra toujours au nom de code Sheets(1) ...!!

Est-ce que cela répond à ta question ?

Salutations
Dédé

--
Pour me répondre, copiez cette formule dans excel ;-) et sur une seule ligne
!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR(111)&CAR(46)&CAR(102
)&CAR(114)

Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/

"marco" a écrit dans le message de
news:0ee301c3a3a6$1dcfc480$
Bonjour,

Dans VBA, lorsque l'on veut sélectionner une feuille du
classeur, on l'appelle par son nom (ex : Sheets("Ma
feuille").Select.
Seulement, si l'utilisateur renomme la feuille, la macro
plante !
Y-a-t'il une manière de gérer l'objet feuille sans passer
par le nom de l'onglet (ce qui laisserait à l'utilisateur
tout loisir de changer le nom), et quelle syntaxe précise
utiliser.

Merci et bravo à tout ceux qui font vivre cet espace.
Avatar
Michel HOLDERITH
Oups pardon...
ce code est mieux :
Sheets(Sheet1.Name).Select
@+
Michel.

"Michel HOLDERITH" <#nospam# wrote in message
news:
Salut,
soit : ActiveWindow.DisplayWorkbookTabs = False
soit tu proteges ton workbook
@+
Michel.

"marco" wrote in message
news:0ee301c3a3a6$1dcfc480$
Bonjour,

Dans VBA, lorsque l'on veut sélectionner une feuille du
classeur, on l'appelle par son nom (ex : Sheets("Ma
feuille").Select.
Seulement, si l'utilisateur renomme la feuille, la macro
plante !
Y-a-t'il une manière de gérer l'objet feuille sans passer
par le nom de l'onglet (ce qui laisserait à l'utilisateur
tout loisir de changer le nom), et quelle syntaxe précise
utiliser.

Merci et bravo à tout ceux qui font vivre cet espace.




Avatar
AV
Clic droit sur l'onglet > visualiser le code >
Dans la liste des Objets, tu vois apparaître quelque chose du style "Feuil1
(zaza)"
Au lieu de sélectionner ta feuille par Sheets("zaza").Select
tu écris :
Feuil1.Select
La sélection ne sera pas tributaire du changement de nom ... (sauf si ...)

AV
Avatar
marco
Intéressant !

Mais il me semble (après essai) que Sheets(2) correspond à
la position de la feuille dans le classeur et non à son
nom de code !
Donc si on déplace les feuilles dans le classeur, ca
marche plus !
Me trompe-je ?

Marco

-----Message d'origine-----
Salut Marco !

Mais bien sûr !!"tu peux l'appeller par on nom de code
Sheets(1) correspond

à la première feuille quelque soit son nom, son
emplacement si tu la déplace

en deuxième position elle répondra toujours au nom de
code Sheets(1) ...!!


Est-ce que cela répond à ta question ?

Salutations
Dédé

--
Pour me répondre, copiez cette formule dans excel ;-) et
sur une seule ligne

!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR
(50)&CAR(48)&CAR(48)

&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102

)&CAR(114)

Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_rep
onses.htm#e1

Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/

"marco" a écrit
dans le message de

news:0ee301c3a3a6$1dcfc480$
Bonjour,

Dans VBA, lorsque l'on veut sélectionner une feuille du
classeur, on l'appelle par son nom (ex : Sheets("Ma
feuille").Select.
Seulement, si l'utilisateur renomme la feuille, la macro
plante !
Y-a-t'il une manière de gérer l'objet feuille sans passer
par le nom de l'onglet (ce qui laisserait à l'utilisateur
tout loisir de changer le nom), et quelle syntaxe précise
utiliser.

Merci et bravo à tout ceux qui font vivre cet espace.


.



Avatar
Dédé
Heuuu je crois m'être trompé un tout tit peu ...

Regarde la réponse de AV !! Elle fonctionne mieux que la mienne pour ton cas
;-))

un exemple :
Sub test()
Feuil1.[A1].Value = "Toto"
End Sub


Salutations
Dédé

--
Pour me répondre, copiez cette formule dans excel ;-) et sur une seule ligne
!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR(50)&CAR(48)&CAR(48)
&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR(111)&CAR(46)&CAR(102
)&CAR(114)

Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_reponses.htm#e1
Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/

"marco" a écrit dans le message de
news:08ae01c3a3b3$84e1f460$
Intéressant !

Mais il me semble (après essai) que Sheets(2) correspond à
la position de la feuille dans le classeur et non à son
nom de code !
Donc si on déplace les feuilles dans le classeur, ca
marche plus !
Me trompe-je ?

Marco

-----Message d'origine-----
Salut Marco !

Mais bien sûr !!"tu peux l'appeller par on nom de code
Sheets(1) correspond

à la première feuille quelque soit son nom, son
emplacement si tu la déplace

en deuxième position elle répondra toujours au nom de
code Sheets(1) ...!!


Est-ce que cela répond à ta question ?

Salutations
Dédé

--
Pour me répondre, copiez cette formule dans excel ;-) et
sur une seule ligne

!
ÊR(83)&CAR(117)&CAR(103)&CAR(117)&CAR(115)&CAR(49)&CAR
(50)&CAR(48)&CAR(48)

&CAR(50)&CAR(64)&CAR(121)&CAR(97)&CAR(104)&CAR(111)&CAR
(111)&CAR(46)&CAR(102

)&CAR(114)

Sites de références,
Word :
http://faq.ms.word.free.fr/
Barre de menu disparues ? voir ici -
http://faq.ms.word.free.fr/Environnement/Environnement_rep
onses.htm#e1

Incrémentation chronologique ?
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v3
Chiffres en lettres ? (Word et Excel)
http://faq.ms.word.free.fr/VBA/VBA_reponses.htm#v4
Excel :
http://www.excelabo.net/
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#accueil_xl
http://dj.joss.free.fr/faq.htm
http://perso.wanadoo.fr/frederic.sigonneau/
http://excel.1.free.fr/

"marco" a écrit
dans le message de

news:0ee301c3a3a6$1dcfc480$
Bonjour,

Dans VBA, lorsque l'on veut sélectionner une feuille du
classeur, on l'appelle par son nom (ex : Sheets("Ma
feuille").Select.
Seulement, si l'utilisateur renomme la feuille, la macro
plante !
Y-a-t'il une manière de gérer l'objet feuille sans passer
par le nom de l'onglet (ce qui laisserait à l'utilisateur
tout loisir de changer le nom), et quelle syntaxe précise
utiliser.

Merci et bravo à tout ceux qui font vivre cet espace.


.



Avatar
Michel Gaboly
Bonjour,

Dans l'environnement VBA, la feuille apparaît parmi les objets Excel
avec au départ un nom répété 2 fois.

L'un correspond au texte de l'onglet, l'autre est la propriété CodeModule
que tu peux modifier via la fenêtre Propriétés. Renomme la premère feuille
"F1" par exemple.

Cette valeur n'est pas modifiable par l'utilisateur (sauf s'il passe par l'envi-
ronnement VBA).

Dans ton code, tu peux ensuite utiliser directement la valeur que tu as choisie

F1.Range("A1")

remplace ainsi avantageusement

Sheets("Feuill1").Range("A1")



Bonjour,

Dans VBA, lorsque l'on veut sélectionner une feuille du
classeur, on l'appelle par son nom (ex : Sheets("Ma
feuille").Select.
Seulement, si l'utilisateur renomme la feuille, la macro
plante !
Y-a-t'il une manière de gérer l'objet feuille sans passer
par le nom de l'onglet (ce qui laisserait à l'utilisateur
tout loisir de changer le nom), et quelle syntaxe précise
utiliser.

Merci et bravo à tout ceux qui font vivre cet espace.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Marco
Excellent ! ! !

Merci et ... "chapeau bas !"

Marco

PS : merci à tous les autres ...

-----Message d'origine-----
Bonjour,

Dans l'environnement VBA, la feuille apparaît parmi les
objets Excel

avec au départ un nom répété 2 fois.

L'un correspond au texte de l'onglet, l'autre est la
propriété CodeModule

que tu peux modifier via la fenêtre Propriétés. Renomme
la premère feuille

"F1" par exemple.

Cette valeur n'est pas modifiable par l'utilisateur (sauf
s'il passe par l'envi-

ronnement VBA).

Dans ton code, tu peux ensuite utiliser directement la
valeur que tu as choisie


F1.Range("A1")

remplace ainsi avantageusement

Sheets("Feuill1").Range("A1")



Bonjour,

Dans VBA, lorsque l'on veut sélectionner une feuille du
classeur, on l'appelle par son nom (ex : Sheets("Ma
feuille").Select.
Seulement, si l'utilisateur renomme la feuille, la macro
plante !
Y-a-t'il une manière de gérer l'objet feuille sans
passer


par le nom de l'onglet (ce qui laisserait à
l'utilisateur


tout loisir de changer le nom), et quelle syntaxe
précise


utiliser.

Merci et bravo à tout ceux qui font vivre cet espace.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




Avatar
Michel Gaboly
Bonjour Marco,

C'était un plaisir ;-))


Excellent ! ! !

Merci et ... "chapeau bas !"

Marco

PS : merci à tous les autres ...

-----Message d'origine-----
Bonjour,

Dans l'environnement VBA, la feuille apparaît parmi les
objets Excel

avec au départ un nom répété 2 fois.

L'un correspond au texte de l'onglet, l'autre est la
propriété CodeModule

que tu peux modifier via la fenêtre Propriétés. Renomme
la premère feuille

"F1" par exemple.

Cette valeur n'est pas modifiable par l'utilisateur (sauf
s'il passe par l'envi-

ronnement VBA).

Dans ton code, tu peux ensuite utiliser directement la
valeur que tu as choisie


F1.Range("A1")

remplace ainsi avantageusement

Sheets("Feuill1").Range("A1")



Bonjour,

Dans VBA, lorsque l'on veut sélectionner une feuille du
classeur, on l'appelle par son nom (ex : Sheets("Ma
feuille").Select.
Seulement, si l'utilisateur renomme la feuille, la macro
plante !
Y-a-t'il une manière de gérer l'objet feuille sans
passer


par le nom de l'onglet (ce qui laisserait à
l'utilisateur


tout loisir de changer le nom), et quelle syntaxe
précise


utiliser.

Merci et bravo à tout ceux qui font vivre cet espace.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com