Bonjour
je suis à la recherche d'un code qui me permette d'avoir la liste des feuilles d'un classeur Excel quelconque?
Version imprimable
Bonjour
je suis à la recherche d'un code qui me permette d'avoir la liste des feuilles d'un classeur Excel quelconque?
Un truc dans ce genre:
Code:
1
2
3
4
5 Sub test() For i = 1 To ActiveWorkbook.Worksheets().Count MsgBox Worksheets(i).Name Next i End Sub
ce code est très interréssant mais il ne fonctionne pas
en fait, je croit que le problème se situe à
mais je n'arrive pas à savoir pourquoiCode:For i = 1 To ActiveWorkbook.Worksheets().Count
le message estCitation:
L'indice n'appartient pas à la selection
en léve les parenthéses...()
Version d'excel ?
petit erratum :
ce qui ne fonctionne pas, c'est ma petite modif perso :
Code:For i = 1 To Workbooks(File).Worksheets().Count
il y as quoi dans variable File ?
voila mon code complet
le but est de lister les feuilles du classeur désigné par textbox2
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim file As String file = TextBox2.Value Application.DisplayAlerts = False 'blocage des messages d'erreurs 'ouverture du fichier Workbooks.Open Filename:=file For i = 1 To Workbooks(File).Worksheets().Count MsgBox Worksheets(i).Name Next i 'fermeture du fichier Workbooks(File).Close savechanges:=False
et il ne marche pas ton code ? tu met bien le nom complet du fichier dans textbox1 ?
textbox2 est le résultat de ce code
Je n'ai aucun doute sur luiCode:Application.GetOpenFilename("Fichers Excel (*.xls),*.xls")
En fait, pour cibler le problème, c'est le compteur qui ne fonctionne pas :
Code:Workbooks(File).Worksheets().Count
Non, mais j'insiste sur la question de bbil :
au moment du plantage, si tu mets la souris sur la variable "File", tu en verras le contenu. Dis nous ce qu'elle contient. Ou au moins, compare ce contenu avec le nom du classeur ouvert (des fois, il n'y a pas le .xls).
la variable File donne le
Effectivement,vous me mettez un doute!Code:d:\moi\Bureau\Nouveau dossier\monclasseur.xls
ca devrait peut etre donner :
pour etre utile?Code:monclasseur.xls
si c'est le cas, alors comment je le récupere son nom?
Il est quand même nettement plus simple d'utiliser
Code:For Each oSheet In WorkSheets
bonsoir à tous
tu peux essayer cette adaptation
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim File As String Dim Wb As Workbook Dim i As Byte File = TextBox2.Value Application.DisplayAlerts = False 'blocage des messages d'erreurs 'ouverture du fichier Set Wb = Workbooks.Open(Filename:=File) For i = 1 To Wb.Worksheets.Count MsgBox Wb.Worksheets(i).Name Next i Wb.Close savechanges:=False
bon week end
michel
Je ne vois pas ce que ça change, AlainTech.
Le problème, il est sur le classeur, pas sur la façon de parcourir les feuilles. Enlève "Workbooks..." dans le code du départ, et ça marchera aussi, mais s'il a plusieurs classeurs ouverts en même temps...
Et effectivement, dans File, tu ne dois mettre QUE le nom du classeur, sans le chemin complet.
ce dernier code fonctionne à merveille!
merci bueacoup tout le monde!