VBA – Lister les Fichiers dans un Dossier
Dans ce tutoriel, vous apprendrez à obtenir les noms de tous les fichiers d’un dossier et à les placer dans une feuille de travail.
Si vous souhaitez plutôt apprendre comment vérifier si un fichier existe, vous pouvez cliquer sur ce lien : VBA File Exists
Utilisation du FileSystemObject pour obtenir la liste des fichiers d’un dossier
VBA vous permet de dresser la liste de tous les fichiers d’un dossier, en utilisant l’objet FileSystemObject.
Nous allons vous montrer comment obtenir la liste des fichiers du dossier C:\Dossier VBA et la placer dans la première colonne de la feuille de travail.
Ce dossier est composé de 5 fichiers, comme le montre l’image 1 :
Image 1. Fichiers du dossier C:\Dossier VBA
Voici le code :
Sub BoucleÀTraversLesFichiers()
Dim oFSO As Object
Dim oDossier As Object
Dim oFichier As Object
Dim i As Integer
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oDossier = oFSO.GetFolder("C:\Dossier VBA")
For Each oFichier In oDossier.Files
Cells(i + 1, 1) = oFichier.Name
i = i + 1
Next oFichier
End Sub
Dans l’exemple, on commence par créer un objet de la classe Scripting.FileSystemObject :
Set oFSO = CreateObject("Scripting.FileSystemObject")
Ensuite, le dossier est associé à un objet en utilisant la méthode GetFolder:
Set oDossier = oFSO.GetFolder("C:\Dossier VBA")
Ensuite, la macro boucle à travers chaque fichier dans oDossier, en utilisant oFichier.Name pour obtenir le nom de chaque fichier dans le dossier et l’écrire dans la prochaine ligne vide:
For Each oFichier In oDossier.Files
Cells(i + 1, 1) = oFichier.Name
i = i + 1
Next oFichier
Image 2. Feuille de travail avec la liste des fichiers du dossier
Comme vous pouvez le voir dans l’image 2, les 5 fichiers du dossier C:\Dossier VBA sont répertoriés dans la première colonne.
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!