Option Explicit
Public nb As Integer
Sub Appel()
Dim chemin As String
nb = 0
chemin = ThisWorkbook.Path
Lister chemin
End Sub
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