Recherche de fichier dans dossier et sous dossiers

Bonsoir 👍

Je souhaitais trouver le moyen de faire une macro pour faire une recherche de fichier de tout type dans un dossier avec des sous dossiers a partir d'un boutons ou peut-être même d'une fenêtre pour choisir le nom a rechercher dans une liste.

Cette recherche serait a partir de n°, les fichiers serait aussi indexés par ces numéros dans le nom du fichier.

J'ai commencé a chercher mais j'avoue j'ai du mal car les seules macro que je sais faire sont par enregistrement 😅

Merci

Bonjour,

voici un exemple,

il ne reste qu'à faire un une condition sur la donnée FileItem.Name pour filtrer le résultat.

Sub Liste_fichiers_deDossier_et_deSousDossier()
'Nécessite d'activer la référence "Microsoft Scripting RunTime"
    Dim Dossier As String
    Dossier = "C:\Users\isabelle\Documents\Excel_Pratique_forum\" 'à adapter
    ListeFichiers Dossier
End Sub

Sub ListeFichiers(Repertoire As String)
    'Nécessite d'activer la référence "Microsoft Scripting RunTime"
    Dim Fso As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder
    Dim SubFolder As Scripting.Folder
    Dim FileItem As Scripting.File
    Dim i As Long

    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = Fso.GetFolder(Repertoire)

    i = Cells(Rows.Count, 1).End(xlUp).Row + 1

    For Each FileItem In SourceFolder.Files

        'faire la condition ici sur la donnée  FileItem.Name pour filtrer le résultat.

        Cells(i, 1) = FileItem.ParentFolder
        Cells(i, 2) = FileItem.Name
        Cells(i, 3) = FileItem.DateCreated
        Cells(i, 4) = FileItem.DateLastAccessed
        Cells(i, 5) = FileItem.DateLastModified
        i = i + 1
    Next FileItem

    For Each SubFolder In SourceFolder.SubFolders
        ListeFichiers SubFolder.Path
    Next SubFolder

End Sub

Bonjour,

Isabelle

Comme la référence est activée, il est plus simple de faire :

Dim Fso As New Scripting.FileSystemObject

que :

Dim Fso As Scripting.FileSystemObject
Set Fso = CreateObject("Scripting.FileSystemObject")

ou même que :

Dim Fso As Scripting.FileSystemObject
Set Fso = New Scripting.FileSystemObject

merci beaucoup à vous, ce qui me gène c'est l'activation du scripting car cette macro serait ulilisé sur d'autres poste, et en plus j'ai pas l'impression d'avoir la main car il s'agit d'un excel d'entreprise avec des parametres securité bloqués

Rechercher des sujets similaires à "recherche fichier dossier dossiers"