Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

numéro de feuille d'un autre classeur

3 réponses
Avatar
rmillerlcxl
Bonjour,

Je n'ai jamais r=C3=A9ussi auparavant =C3=A0 faire ceci ... et j'aimerais b=
ien.

Dans un 2=C3=A8me classeur disons que j'ai 3 feuilles. Dans le projet VBA e=
lles apparaissent comme suit;

- Feuil6 (E-W)
- Feuil12 (E-X)
- Feuil27 (E-Y)

Dans le classeur actif j'ai aussi ces feuilles;

- Feuil6 (A1)
- Feuil12 (A2)
- Feuil27 (A3)

Le nom des feuilles peuvent modifier selon la langue dans le fichier. Alors=
je souhaite faire une action avec la feuil6 dans le classeur 2.

Si j'inscrit le code ... Workbooks(2).sheets(Feuil6).name ou Workbooks(2).s=
heets(Feuil6.Name).name etc. je n'arrive pas =C3=A0 atteindre la feuille E-=
W du classeur 2.

Il doit me manquer un bout de code que je ne connais pas. J'y arrive par In=
dex mais exemple Index 1 =3D =C3=A0 la position de la feuille dans le class=
eur.

Comment atteindre la feuil6 du classeur 2 sans possibilit=C3=A9 d'erreur?

Merci =C3=A0 l'avance.

3 réponses

Avatar
Jacquouille
Bonjour
Je me méfie toujours des noms de feuilles que l'on intitule "feuilx ou y"
....
pourquoi ne pas donner un nom bien clair?
Ensuite, faire un essais avec l'enregistreur de macro. il donnera sa
solution. pas toujours la plus courte, mais cela fonctionne.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
a écrit dans le message de groupe de discussion :
Bonjour,
Je n'ai jamais réussi auparavant à faire ceci ... et j'aimerais bien.
Dans un 2ème classeur disons que j'ai 3 feuilles. Dans le projet VBA elles
apparaissent comme suit;
- Feuil6 (E-W)
- Feuil12 (E-X)
- Feuil27 (E-Y)
Dans le classeur actif j'ai aussi ces feuilles;
- Feuil6 (A1)
- Feuil12 (A2)
- Feuil27 (A3)
Le nom des feuilles peuvent modifier selon la langue dans le fichier. Alors
je souhaite faire une action avec la feuil6 dans le classeur 2.
Si j'inscrit le code ... Workbooks(2).sheets(Feuil6).name ou
Workbooks(2).sheets(Feuil6.Name).name etc. je n'arrive pas à atteindre la
feuille E-W du classeur 2.
Il doit me manquer un bout de code que je ne connais pas. J'y arrive par
Index mais exemple Index 1 = à la position de la feuille dans le classeur.
Comment atteindre la feuil6 du classeur 2 sans possibilité d'erreur?
Merci à l'avance.
Avatar
Michd
Bonjour,
Ce que tu demandes est impossible. Dans le code, on peut utiliser la
propriété "NAME" d'un objet worksheet (codename) seulement dans le classeur
où cette feuille est située.
Cependant, si tu connais d'avance le "CodeName" de la feuille située dans
l'autre classeur, tu peux faire ce qui suit :
Créer une fonction, qui boucle sur toutes les feuilles et qui teste le
codename de chacune. Lorsqu'il trouve, il renseigne la variable
"GetSheet_CodeName" qui représente ladite feuille dans ton code. Pour
vérifier que c'est bien vrai, je fais le petit test en affichant dans une
boîte de message, la valeur d'une cellule de cette feuille.
Dans mon Exemple :
"Test" est le codename de la feuille recherchée.
"Classeur2" est le nom d'un classeur pas encore enregistré.
'----------------------------------------------
Sub test()
Dim Sh As Worksheet
Dim Wk As Workbook
Set Wk = Workbooks("Classeur2")
Set Sh = GetSheet_CodeName(Wk, "test")
With Sh
MsgBox .Range("A1").Value
End With
End Sub
'----------------------------------------------
Function GetSheet_CodeName(Wk As Workbook, _
CodeName As String) As Excel.Worksheet
Dim Sh As Excel.Worksheet
For Each Sh In Wk.Worksheets
If Sh.CodeName = CodeName Then
Set GetSheet_CodeName = Sh
Exit For
End If
Next
End Function
'----------------------------------------------
MichD
Avatar
rmillerlcxl
Merci.
Ça répond parfaitement à mon interrogation.