Médiaforma

VBA Excel – Lister les fichiers contenus dans un dossier

Print Friendly, PDF & Email

Cet article va vous montrer comment lister les fichiers contenus dans un dossier quelconque dans une feuille de calcul. Ici, les fichiers seront listés dans les cellules de la colonne A de la feuille de calcul Feuil1.

Pour cela, nous utiliserons la fonction Dir() pour parcourir le dossier :

Dim Fichier As String

Fichier = Dir("chemin")

chemin représente le chemin du dossier à examiner. Par exemple c:\dossier\sous-dossier\.

Si nécessaire, vous pouvez préciser le modèle des fichiers recherchés à la suite du chemin. Par exemple, c:\dossier\sous-dossier\*.docx recherchera les fichiers d’extension docx dans le dossier c:\dossier\sous-dossier.

Voici le code utilisé :

Dim Dossier As String, Fichier As String, i As Integer

Dossier = "C:\data\encours\"

i = 0

Fichier = Dir(Dossier)

Do While Fichier <> ""

  i = i + 1

  Sheets("Feuil1").Range("A" & i) = Fichier

  Fichier = Dir

Loop

La première ligne définit les variables utilisées dans le programme.

Dim Dossier As String, Fichier As String, i As Integer

La deuxième ligne affecte le dossier dont on désire lister les fichiers à la variable Dossier :

Dossier = "C:\data\encours\"

La troisième ligne initialise la variable compteur qui sera utilisée pour copier le nom des fichiers dans la feuille de calcul :

i = 0

La quatrième ligne utilise la fonction Dir() pour rechercher les fichiers dans le dossier spécifié en argument :

Fichier = Dir(Dossier)

Une boucle Do While parcourt les fichiers listés dans la variable Fichier jusqu’au dernier :

Do While Fichier <> ""

La variable compteur est incrémentée, puis le nom du fichier courant est copié dans la cellule de colonne A et de ligne i :

  i = i + 1

  Sheets("Feuil1").Range("A" & i) = Fichier

Pour passer au fichier suivant, il suffit d’affecter la fonction Dir à la variable Fichier :

  Fichier = Dir

Loop

Voici un exemple d’exécution :

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.