Selection de feuille

Le
JLuc
Bonsoir les lecteurs,
J'ai une liste de nom de feuille en colonne A . Pas le nom des
feuilles, mais les CodeName.
Dans une une boucle For s Each In Range("A1:A10"), comment faire pour
selectionner la feuille ?
le code : s.Select ne passe pas :/
J'ai une erreur 1004 : La méthode Select de la classe Range à échoué
Merci pour vos reponses

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ru-th
Le #4943761
Salut

pas le plus pratique par le codename en variable
un exemple (trop tard pour creusé plus longtemps)
Sub test()
e = "Feuil2"
For i = 1 To Sheets.Count
If Sheets(i).CodeName = e Then
Sheets(i).Select
GoTo suite
End If
Next
suite:

End Sub

a+
rural thierry

Bonsoir les lecteurs,
J'ai une liste de nom de feuille en colonne A . Pas le nom des feuilles,
mais les CodeName.
Dans une une boucle For s Each In Range("A1:A10"), comment faire pour
selectionner la feuille ?
le code : s.Select ne passe pas :/
J'ai une erreur 1004 : La méthode Select de la classe Range à échoué
Merci pour vos reponses



cousinhub
Le #4943741
Bonsoir, essaie :

For Each x In [a1:a10]
Worksheets("" & x & "").Activate

Bonne soirée

Bonsoir les lecteurs,
J'ai une liste de nom de feuille en colonne A . Pas le nom des feuilles,
mais les CodeName.
Dans une une boucle For s Each In Range("A1:A10"), comment faire pour
selectionner la feuille ?
le code : s.Select ne passe pas :/
J'ai une erreur 1004 : La méthode Select de la classe Range à échoué
Merci pour vos reponses



MichDenis
Le #4943711
'-----------------------------------
Sub Codename1()
Dim C As Range, NomOnglet As String
On Error Resume Next
'Adapte le nom de la feuille et la plage de cellules
'où sont tes codename
For Each C In Worksheets("Feuil1").Range("A1:A10")
NomOnglet = Worksheets(ThisWorkbook.VBProject. _
VBComponents(C.Value).Properties("Index")).Name
If Err = 0 Then
Worksheets(NomOnglet).Select
Else
Err.Clear
End If
Next
End Sub
'-----------------------------------



"JLuc"
Bonsoir les lecteurs,
J'ai une liste de nom de feuille en colonne A . Pas le nom des
feuilles, mais les CodeName.
Dans une une boucle For s Each In Range("A1:A10"), comment faire pour
selectionner la feuille ?
le code : s.Select ne passe pas :/
J'ai une erreur 1004 : La méthode Select de la classe Range à échoué
Merci pour vos reponses

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O
LSteph
Le #4573351
Bonjour JLuc,

Autant le CodeName est commode dans le code, autant pas dans la feuille
mais ça c'est déjà répondu.

J'y vois autre chose:
(à moins que ce ne soit un cas d'école par rapport à l'objectif)

Peux tu préciser selon quel contexte tu aurais besoin de les
sélectionner ainsi une par une.
Car à la fin d'une telle boucle on est sur la dernière feuille
de la liste, on aurait pu y aller directement.
Mon, pourtant très faible, neurone de perspicacité, n'arrête pas de me
lancer des alertes en me disant
qu'entre chaque select, on doit faire quelquechose qui se pourrait
également sans Select sur chaque feuille.
Exemple ici en remplaçant call traitement(sh) par un msgbox

Dim Sh as worksheet, c as range
For each c in [a1:a10].cells
For each sh in ActiveWorkbook.worksheets
if Sh.CodeName=c then Msgbox Sh.Name
next sh
next c


'Cdlt

'LSteph
Bonsoir les lecteurs,
J'ai une liste de nom de feuille en colonne A . Pas le nom des feuilles,
mais les CodeName.
Dans une une boucle For s Each In Range("A1:A10"), comment faire pour
selectionner la feuille ?
le code : s.Select ne passe pas :/
J'ai une erreur 1004 : La méthode Select de la classe Range à échoué
Merci pour vos reponses



JLuc
Le #4570781
*Bonjour LSteph*,

Peux tu préciser selon quel contexte tu aurais besoin de les sélectionner
ainsi une par une.


C'était justement pour éviter une boucle sur toutes les feuilles. Je
mets au point (enfin, j'éssaie) un code pour ALF avec une macro
Workbook_SheetChange qui doit tourner seulement sur quelques feuilles.
Pour éviter les changements de nom d'une feuille, je voulais mettre en
colonne A d'une feuille "Config" les CodeName des feuilles à traiter,
et en colonne B les noms des feuilles à ne pas traiter. A chaque fois
que j'active une feuille, je controle si son nom est présent dans une
des liste, si oui, je fais rien, si non alors je demande si la feuille
devra être traitée par la macro ou pas pour savoir dans quelle liste je
la met.
Donc, tant pis ! Je mettrais les noms d'onglet.
Merci à tous pour votre aide même si çà ne débouche sur rien de
favorable :oÞ

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

cousinhub
Le #4570731
Bonsoir,
Merci à tous pour votre aide même si çà ne débouche sur rien de
favorable :oÞ
micro-climat?;-)


mon code, ainsi que celui de MichDenis fonctionnent parfaitement!
Bonne soirée

*Bonjour LSteph*,

Peux tu préciser selon quel contexte tu aurais besoin de les
sélectionner ainsi une par une.


C'était justement pour éviter une boucle sur toutes les feuilles. Je
mets au point (enfin, j'éssaie) un code pour ALF avec une macro
Workbook_SheetChange qui doit tourner seulement sur quelques feuilles.
Pour éviter les changements de nom d'une feuille, je voulais mettre en
colonne A d'une feuille "Config" les CodeName des feuilles à traiter, et
en colonne B les noms des feuilles à ne pas traiter. A chaque fois que
j'active une feuille, je controle si son nom est présent dans une des
liste, si oui, je fais rien, si non alors je demande si la feuille devra
être traitée par la macro ou pas pour savoir dans quelle liste je la met.
Donc, tant pis ! Je mettrais les noms d'onglet.
Merci à tous pour votre aide même si çà ne débouche sur rien de
favorable :oÞ




JLuc
Le #4570701
*Bonjour cousinhub*,
Ne te méprends pas sur mes propos cher cousin,
je n'ai pas dis qu'ils ne fonctionnaient pas, mais qu'ils ne me
convennaient pas ;-) Je ne veux pas faire de boucle sur toutes les
feuilles en vérifiant le CodeName.
J'avais esperé qu'il y aurai quelquechose comme :
Object(Range("A1")).Select
où il y aurai le CodeName dans A1 ;o)
Mais apparement, ce n'est pas le cas vu que vous passez tous par une
boucle
Il faut reconnaitre que tous vos codes sont excelent :oÞ et je n'en
attendais pas moins de vous , seulement un petit peu plus :')
Aller, sans rancune :-*

Bonsoir,
Merci à tous pour votre aide même si çà ne débouche sur rien de favorable
:oÞ
micro-climat?;-)


mon code, ainsi que celui de MichDenis fonctionnent parfaitement!
Bonne soirée

*Bonjour LSteph*,

Peux tu préciser selon quel contexte tu aurais besoin de les sélectionner
ainsi une par une.


C'était justement pour éviter une boucle sur toutes les feuilles. Je mets
au point (enfin, j'éssaie) un code pour ALF avec une macro
Workbook_SheetChange qui doit tourner seulement sur quelques feuilles.
Pour éviter les changements de nom d'une feuille, je voulais mettre en
colonne A d'une feuille "Config" les CodeName des feuilles à traiter, et en
colonne B les noms des feuilles à ne pas traiter. A chaque fois que
j'active une feuille, je controle si son nom est présent dans une des
liste, si oui, je fais rien, si non alors je demande si la feuille devra
être traitée par la macro ou pas pour savoir dans quelle liste je la met.
Donc, tant pis ! Je mettrais les noms d'onglet.
Merci à tous pour votre aide même si çà ne débouche sur rien de favorable
:oÞ




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



MichDenis
Le #4570581
Et ça monsieur, ça ressemble à quoi

avec le codename d'une feuille dans A1

Une ligne de code écrite sur 2 lignes....
'--------------------------
Worksheets(Worksheets(ThisWorkbook.VBProject. _
VBComponents(Range("A1").value).Properties("Index")).Name).Select
'--------------------------

Mais difficile de présenter cela sans faire de boucle sur tu veux
sélectionner toutes les feuilles d'une plage de cellule à tour de rôle !

Sois gentil où M devra retenir le cadeau un peu plus longtemps
;-)))





"JLuc"
*Bonjour cousinhub*,
Ne te méprends pas sur mes propos cher cousin,
je n'ai pas dis qu'ils ne fonctionnaient pas, mais qu'ils ne me
convennaient pas ;-) Je ne veux pas faire de boucle sur toutes les
feuilles en vérifiant le CodeName.
J'avais esperé qu'il y aurai quelquechose comme :
Object(Range("A1")).Select
où il y aurai le CodeName dans A1 ;o)
Mais apparement, ce n'est pas le cas vu que vous passez tous par une
boucle
Il faut reconnaitre que tous vos codes sont excelent :oÞ et je n'en
attendais pas moins de vous , seulement un petit peu plus :')
Aller, sans rancune :-*

Bonsoir,
Merci à tous pour votre aide même si çà ne débouche sur rien de favorable
:oÞ
micro-climat?;-)


mon code, ainsi que celui de MichDenis fonctionnent parfaitement!
Bonne soirée

*Bonjour LSteph*,

Peux tu préciser selon quel contexte tu aurais besoin de les sélectionner
ainsi une par une.


C'était justement pour éviter une boucle sur toutes les feuilles. Je mets
au point (enfin, j'éssaie) un code pour ALF avec une macro
Workbook_SheetChange qui doit tourner seulement sur quelques feuilles.
Pour éviter les changements de nom d'une feuille, je voulais mettre en
colonne A d'une feuille "Config" les CodeName des feuilles à traiter, et en
colonne B les noms des feuilles à ne pas traiter. A chaque fois que
j'active une feuille, je controle si son nom est présent dans une des
liste, si oui, je fais rien, si non alors je demande si la feuille devra
être traitée par la macro ou pas pour savoir dans quelle liste je la met.
Donc, tant pis ! Je mettrais les noms d'onglet.
Merci à tous pour votre aide même si çà ne débouche sur rien de favorable
:oÞ




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



LSteph
Le #4570481
Bonsoir,

Outre les exemples proposés,que tu sauras ou non adapter à ton
objectif(pas bien clair pour mon neurone)
désolé, je ne vois toujours pas en quoi faire un select sur la feuille
au lieu de l'utiliser directement apporte quelquechose de plus!

Mais, indépendament de ce point de vue sur les select je vois que tu as
une autre suggestion de MD, qui augure vraisemblablement autre chose
que ce que j'ai pas vraiment compris sur la finalité profonde, et qui a
donc faculté à y répondre...


@+

lSteph


*Bonjour LSteph*,

Peux tu préciser selon quel contexte tu aurais besoin de les
sélectionner ainsi une par une.


C'était justement pour éviter une boucle sur toutes les feuilles. Je
mets au point (enfin, j'éssaie) un code pour ALF avec une macro
Workbook_SheetChange qui doit tourner seulement sur quelques feuilles.
Pour éviter les changements de nom d'une feuille, je voulais mettre en
colonne A d'une feuille "Config" les CodeName des feuilles à traiter, et
en colonne B les noms des feuilles à ne pas traiter. A chaque fois que
j'active une feuille, je controle si son nom est présent dans une des
liste, si oui, je fais rien, si non alors je demande si la feuille devra
être traitée par la macro ou pas pour savoir dans quelle liste je la met.
Donc, tant pis ! Je mettrais les noms d'onglet.
Merci à tous pour votre aide même si çà ne débouche sur rien de
favorable :oÞ




LSteph
Le #4570301
Bonjour JLuc,

Maintenant que mon neurone se réveille (tout cela AMHA bien sûr):

Ton idée d'écrire les noms (CodeName) des Feuilles qu'il faut traiter est
excellente
sauf que
ce serait à lister dans le code et non dans la feuille.

Donc la boucle qui intègre un filtre:
For each sh ....
Select Case Sh.codename
Case "Feuil1","Feuil3", "Feuil14", "Feuil32"
'on traite
end select
next

Ainsi les noms de celles qui conviennent peuvent dispenser de celles qui
ne conviennent pas.
Une simple boucle sur les feuilles serait ainsi à mon sentiment
bien préférable à des selectionchange et des select.
Et le Sh.Select avantageusement remplacé par le traitement lui même!



;-)

@+

lSteph


*Bonjour LSteph*,

Peux tu préciser selon quel contexte tu aurais besoin de les
sélectionner ainsi une par une.


C'était justement pour éviter une boucle sur toutes les feuilles. Je
mets au point (enfin, j'éssaie) un code pour ALF avec une macro
Workbook_SheetChange qui doit tourner seulement sur quelques feuilles.
Pour éviter les changements de nom d'une feuille, je voulais mettre en
colonne A d'une feuille "Config" les CodeName des feuilles à traiter, et
en colonne B les noms des feuilles à ne pas traiter. A chaque fois que
j'active une feuille, je controle si son nom est présent dans une des
liste, si oui, je fais rien, si non alors je demande si la feuille devra
être traitée par la macro ou pas pour savoir dans quelle liste je la met.
Donc, tant pis ! Je mettrais les noms d'onglet.
Merci à tous pour votre aide même si çà ne débouche sur rien de
favorable :oÞ




Publicité
Poster une réponse
Anonyme