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

pb avec boucle sur nom des feuilles

1 réponse
Avatar
sergio_bzh
Bonjour,
J'essaie de récupérer les noms de toutes les feuilles de tous mes
classeurs avec une boucle. J'ai fait en exécution pas à pas pour
vérifier.
workbooks(1) contient 3 feuilles
workbooks(2) contient 2 feuilles

A la 1ère boucle sur workbooks(1), je fais bien :
for jj=1 to 3

Mais Très curieusement, à la 2nde boucle sur workbooks(2), je fais
également 3 boucles sur jj !
Je récupère néanmoins le bon nom dans nomSh sauf évidemmment pour le
le 3ème qui est un nom qui sort de ne je ne sais où !

Pour résumer c'est ActiveWorkbook.Sheets.Count qui ne colle pas.

Si qqun peut m'aider ...
Merci.
Serge

Mon code :
-----------
For i = 1 To Workbooks.Count
Workbooks(i).Activate
For jj = 1 To ActiveWorkbook.Sheets.Count
nomSh = ActiveWorkbook.Sheets(jj).Name

1 réponse

Avatar
anonymousA
bonjour,

les 2 programmes suivants sont équivalents même si le secod est plus rapide
que le 1er. Ces 2 procs trouveront toutes les feuilles , même celles qui sont
cachées et cells qui ne sont pas des worksheets ( feuilles graphiques,
dialogsheets...).

For i = 1 To Workbooks.Count
Workbooks(i).Activate
For jj = 1 To ActiveWorkbook.Sheets.Count
MsgBox ActiveWorkbook.Sheets(jj).Name
Next
Next

For i = 1 To Workbooks.Count
For jj = 1 To Workbooks(i).Sheets.Count
MsgBox Workbooks(i).Sheets(jj).Name
Next
Next

A+


Bonjour,
J'essaie de récupérer les noms de toutes les feuilles de tous mes
classeurs avec une boucle. J'ai fait en exécution pas à pas pour
vérifier.
workbooks(1) contient 3 feuilles
workbooks(2) contient 2 feuilles

A la 1ère boucle sur workbooks(1), je fais bien :
for jj=1 to 3

Mais Très curieusement, à la 2nde boucle sur workbooks(2), je fais
également 3 boucles sur jj !
Je récupère néanmoins le bon nom dans nomSh sauf évidemmment pour le
le 3ème qui est un nom qui sort de ne je ne sais où !

Pour résumer c'est ActiveWorkbook.Sheets.Count qui ne colle pas.

Si qqun peut m'aider ...
Merci.
Serge

Mon code :
-----------
For i = 1 To Workbooks.Count
Workbooks(i).Activate
For jj = 1 To ActiveWorkbook.Sheets.Count
nomSh = ActiveWorkbook.Sheets(jj).Name