Oui, c'est possible :
dim dico as object
Sub Lister()
set dico = createobject("Scripting.dictionary")
with application.filedialog(msofiledialogfolderpicker)
.show
if .selecteditems.count = 1 then srep$ = .selecteditems(1) else exit sub
end with
ListeReps srep
cells(1, 1).resize(dico.count).value = application.transpose(dico.keys)
set dico = nothing
end sub
function ListeReps(srep$)
set fso = createobject("Scripting.filesystemobject")
set fd = fso.getfolder(srep)
dico(fd.name) = ""
for each fil in fd.files
dico(fil.name) = ""
next fil
for each sfd in fd.subfolders
ListeReps sfd.path
next sfd
end function
Par contre, la méthode employée permet d'éviter les doublons (il n'y a jamais 2 répertoires identiques) et pourrait poser problème si des dossiers portaient le même nom...
Alors, il y aurait lieu de modifier le code.
Cdlt,