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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Workbooks.open chemin & "\" & NomFich
Pour renseigner une liste, remplacer la ligne par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ListBox1.AddItem chemin & "\" & NomFich