Une autre méthode pour lister les fichiers de répertoires et de leurs sous-répertoires.
- fso pour parcourir les répertoires
- Dir pour lister les fichiers
Cette méthode est plus rapide que la seule utilisation de FSO.
Elle réunit plusieurs méthodes décrites indépendamment l'une de l'autre dans la FAQ.
N'inclut pas le classement par ordre alphabétique
Appel de la fonction :
1 2 3 4 5 6 7 8 9
| Option Explicit
Public nb As Integer
Sub Appel()
Dim chemin As String
nb = 0
chemin = "D:\xls"
Lister chemin
End Sub |
Fonction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Public Function Lister(chemin As String)
Dim fs, Rep As Variant, NewRep As String, Nomfich As String
Set fs = CreateObject("Scripting.FileSystemObject")
Lister = fs.GetFolder(chemin).Files.Count
Nomfich = Dir(chemin & "\*.xls")
Do While Nomfich <> ""
nb = nb + 1
Cells(nb, 1) = chemin & "\" & Nomfich 'liste dans la feuille de calculs active
Nomfich = Dir()
Loop
'Pour chaque sous-répertoire, appel récursif de Lister
For Each Rep In fs.GetFolder(chemin).SubFolders
NewRep = Lister(Rep.Path)
Next Rep
End Function |
Pour ouvrir les fichiers, remplacer
Cells(nb, 1) = chemin & "\" & Nomfich 'liste dans la feuille de calculs
par
Workbooks.open chemin & "\" & NomFich
Pour renseigner une liste, remplacer la ligne par
ListBox1.AddItem chemin & "\" & NomFich
Partager