Parcourir des repertoires et sous repertoires sous excel

Contenu du snippet

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

A voir également

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.