1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| Option Explicit
Dim i As Integer
Dim Cible As Byte
Sub listeDossiersEtSousDossiers()
Dim Racine As String
Application.ScreenUpdating = False
Racine = "C:\Documents and Settings\mimi\dossier"
Cible = nbSeparateur(Racine)
ListeReps Racine, True
Application.ScreenUpdating = True
i = 0
End Sub
Sub ListeReps(strDossier As String, strSousDossier As Boolean)
' adapté de Ole P Erlandsen
Dim Fso As Object, SourceFolder As Object
Dim SubFolder As Object
On Error GoTo Fin
Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(strDossier)
If strSousDossier Then
For Each SubFolder In SourceFolder.subfolders
i = i + 1
'pour recuperer le chemin complet
'Cells(i, nbSeparateur(SubFolder.Path) - Cible) = SubFolder.Path
'
'pour recuperer uniquement le nom du dossier
Cells(i, nbSeparateur(SubFolder.Path) - Cible) = SubFolder.Name
ListeReps SubFolder.Path, strSousDossier
Next SubFolder
End If
Fin:
End Sub
Function nbSeparateur(Chemin As String) As Byte
Dim m As Integer
Dim Nb As Byte
For m = 1 To Len(Chemin)
If Mid(Chemin, m, 1) = "\" Then
Nb = Nb + 1
m = m + 1
End If
Next m
nbSeparateur = Nb
End Function |
Partager