OVH Cloud OVH Cloud

variable sur des feuilles renommées

8 réponses
Avatar
DJ9B
Bonjour à tous !
J'ai renommé les feuilles d'un classeur ( non pas leurs onglets ) pour
obtenir Sh1, Sh2, etc et ShSpecial1, ShSpecial2, etc à la place des
habituelles Feuil1, Feuil2,ect .
Commet créer ma variable pour boucler dessus ?
Merci !

--
@ tantôt !
DJ9B
email : http://www.cerbermail.com/?avOmkXbR4h
Site : http://www.dj9b.fr.st

8 réponses

Avatar
FxM
Bonsoir,

Ca laisse supposer que tu dois jouer avec codename et non pas name.

@+
FxM



DJ9B wrote:

Bonjour à tous !
J'ai renommé les feuilles d'un classeur ( non pas leurs onglets ) pour
obtenir Sh1, Sh2, etc et ShSpecial1, ShSpecial2, etc à la place des
habituelles Feuil1, Feuil2,ect .
Commet créer ma variable pour boucler dessus ?
Merci !



Avatar
DJ9B
Salut FxM !
Quel syntaxe ?
VBAProject.ThisWorkbook.CodeName("Sh" & a)
ne fonctionne pas ;o( !

--
@ tantôt !
DJ9B
email : http://www.cerbermail.com/?avOmkXbR4h
Site : http://www.dj9b.fr.st


"FxM" a écrit dans le message de
news:OKmWjQv$
Bonsoir,

Ca laisse supposer que tu dois jouer avec codename et non pas name.

@+
FxM



DJ9B wrote:

Bonjour à tous !
J'ai renommé les feuilles d'un classeur ( non pas leurs onglets ) pour
obtenir Sh1, Sh2, etc et ShSpecial1, ShSpecial2, etc à la place des
habituelles Feuil1, Feuil2,ect .
Commet créer ma variable pour boucler dessus ?
Merci !





Avatar
michdenis
Bonjour DJ9B,

Ceci te permet de boucler sur les objets "Feuil" de ton projet... attention, tu ne peux pas atteindre les feuilles de
calcul par cet objet.
'----------------------
Dim A As Integer
For A = 1 To Worksheets.Count
MsgBox ThisWorkbook.VBProject.VBComponents("Feuil" & A).Name
Next
'----------------------


Si tu veux boucler sur les feuilles de calcul à partir des noms ("Name") des feuilles, tu peux le faire comme ceci :

Remplace "Feuil" par le "Préfixe" ( sh ou shspecial) que tu as données aux objets feuilles,
La lettre A représente l'index ( 1 to x )

dans la procédure, le message t'affichera l'équivalent du nom réelle de l'onglet de la feuille de calcul.

Dim A As Integer
For A = 1 To Worksheets.Count
MsgBox Worksheets(ThisWorkbook.VBProject.VBComponents("Feuil" & A).Properties("Index")).Name
Next


Et tu peux utiliser ceci pour avoir accès directement à la feuille de calcul à partir du nom de l'objet de la propriété
Name de la feuille de calcul


Dim A As Integer
Dim Sh As Worksheet
For A = 1 To Worksheets.Count
Set Sh = Worksheets(Worksheets(ThisWorkbook. _
VBProject.VBComponents("Feuil" & A). _
Properties("Index")).Name)
With Sh
MsgBox .Name
.Range("A1") = 25
End With
Next



Salutations!



"DJ9B" <*%enleve_moi_ça%* a écrit dans le message de news:uB$lEZu$
Bonjour à tous !
J'ai renommé les feuilles d'un classeur ( non pas leurs onglets ) pour
obtenir Sh1, Sh2, etc et ShSpecial1, ShSpecial2, etc à la place des
habituelles Feuil1, Feuil2,ect .
Commet créer ma variable pour boucler dessus ?
Merci !

--
@ tantôt !
DJ9B
email : http://www.cerbermail.com/?avOmkXbR4h
Site : http://www.dj9b.fr.st
Avatar
DJ9B
Impeccable :o))
Merci Denis !

--
@ tantôt !
DJ9B
email : http://www.cerbermail.com/?avOmkXbR4h
Site : http://www.dj9b.fr.st


"michdenis" a écrit dans le message de
news:e78SHfv$

Bonjour DJ9B,

Ceci te permet de boucler sur les objets "Feuil" de ton projet...
attention, tu ne peux pas atteindre les feuilles de

calcul par cet objet.
'----------------------
Dim A As Integer
For A = 1 To Worksheets.Count
MsgBox ThisWorkbook.VBProject.VBComponents("Feuil" & A).Name
Next
'----------------------


Si tu veux boucler sur les feuilles de calcul à partir des noms ("Name")
des feuilles, tu peux le faire comme ceci :


Remplace "Feuil" par le "Préfixe" ( sh ou shspecial) que tu as données aux
objets feuilles,

La lettre A représente l'index ( 1 to x )

dans la procédure, le message t'affichera l'équivalent du nom réelle de
l'onglet de la feuille de calcul.


Dim A As Integer
For A = 1 To Worksheets.Count
MsgBox Worksheets(ThisWorkbook.VBProject.VBComponents("Feuil" &
A).Properties("Index")).Name

Next


Et tu peux utiliser ceci pour avoir accès directement à la feuille de
calcul à partir du nom de l'objet de la propriété

Name de la feuille de calcul


Dim A As Integer
Dim Sh As Worksheet
For A = 1 To Worksheets.Count
Set Sh = Worksheets(Worksheets(ThisWorkbook. _
VBProject.VBComponents("Feuil" & A). _
Properties("Index")).Name)
With Sh
MsgBox .Name
.Range("A1") = 25
End With
Next



Salutations!



"DJ9B" <*%enleve_moi_ça%* a écrit dans le message de
news:uB$lEZu$

Bonjour à tous !
J'ai renommé les feuilles d'un classeur ( non pas leurs onglets ) pour
obtenir Sh1, Sh2, etc et ShSpecial1, ShSpecial2, etc à la place des
habituelles Feuil1, Feuil2,ect .
Commet créer ma variable pour boucler dessus ?
Merci !

--
@ tantôt !
DJ9B
email : http://www.cerbermail.com/?avOmkXbR4h
Site : http://www.dj9b.fr.st






Avatar
FxM
Bonsoir,

La solution de Denis fonctionnant, je ne m'affole pas pour chercher ;o)

@+
FxM


DJ9B wrote:

Salut FxM !
Quel syntaxe ?
VBAProject.ThisWorkbook.CodeName("Sh" & a)
ne fonctionne pas ;o( !



Avatar
DJ9B
Merci d'avoir essayer :o)) !

--
@ tantôt !
DJ9B
email : http://www.cerbermail.com/?avOmkXbR4h
Site : http://www.dj9b.fr.st


"FxM" a écrit dans le message de
news:e1ZZA6v$
Bonsoir,

La solution de Denis fonctionnant, je ne m'affole pas pour chercher ;o)

@+
FxM


DJ9B wrote:

Salut FxM !
Quel syntaxe ?
VBAProject.ThisWorkbook.CodeName("Sh" & a)
ne fonctionne pas ;o( !





Avatar
Alain CROS
Bonjour.

Pour la syntaxe avec CodeName.

Sub ListeFeuille()
Dim Sh As Worksheet
For Each Sh In Worksheets
MsgBox Sh.CodeName & vbCr & Sh.Name
Next Sh
End Sub

Alain CROS.

-----Message d'origine-----
Salut FxM !
Quel syntaxe ?
VBAProject.ThisWorkbook.CodeName("Sh" & a)
ne fonctionne pas ;o( !



Avatar
FxM
Mon neurone (en grève) te remercie !

@+
FxM



Alain CROS wrote:

Bonjour.

Pour la syntaxe avec CodeName.

Sub ListeFeuille()
Dim Sh As Worksheet
For Each Sh In Worksheets
MsgBox Sh.CodeName & vbCr & Sh.Name
Next Sh
End Sub

Alain CROS.


-----Message d'origine-----
Salut FxM !
Quel syntaxe ?
VBAProject.ThisWorkbook.CodeName("Sh" & a)
ne fonctionne pas ;o( !