J'ai parcouru ce site et bien d'autre pour trouver un code "simple" et compréhensible (vu mon niveau;) pour parcourir un repertoire, sous repertoire, etc... afin de récuperer les fichiers.
j'ai fait cela en qq lignes. N hesitez pas a faire vos commentaires.
il faut modifier le path initial dans GetListFile puis lancer la procédure.
Liste mise dans la premiere feuille du classeur (je n'ai pas traité le cas ou nb file> 65000)
Source / Exemple :
Sub GetListFile()
Dim MyPath As String
Dim ListFolder(1000) As String
Dim i As Integer
Dim j As Integer
Dim CurrentListFolder As Integer
ListFolder(1) = "c:\temp\"
j = 1
' clean sheet
Cells.Select
Selection.ClearContents
Range("A1").Select
CurrentListFolder = 1
i = 2
Do Until i = CurrentListFolder
ScanFolder ListFolder(CurrentListFolder), i, j, ListFolder
CurrentListFolder = CurrentListFolder + 1
Loop
End Sub
Sub ScanFolder(MyPath As String, ByRef i As Integer, ByRef j As Integer, ByRef ListFolder() As String)
Dim SubFolder As String
SubFolder = Dir(MyPath, vbDirectory)
Do While SubFolder <> "" ' Commence la boucle.
If SubFolder <> "." And SubFolder <> ".." Then
If (GetAttr(MyPath & SubFolder) And vbDirectory) = vbDirectory Then
ListFolder(i) = MyPath & SubFolder & "\"
i = i + 1
Else
Sheets(1).Cells(j, 1) = MyPath
Sheets(1).Cells(j, 2) = SubFolder
j = j + 1
End If
End If
SubFolder = Dir ' Extrait l'entrée suivante.
Loop
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.