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?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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 :
d882aba9-11a9-40b3-a29b-ed90874912a8@googlegroups.com...
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?
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.
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
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
'----------------------------------------------
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
rmillerlcxl
Merci. Ça répond parfaitement à mon interrogation.