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")
Où 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 :
Bonjour, je voudrai un renseignement, j’espère que je poste bien au bon endroit, si ce n’est pas le cas je m’en excuse..
J’ai un projet à réaliser dans le cadre de mon travail, qui nécessite entre autre de lister l’ensemble des fichiers Excel contenus dans un dossier. Je débute dans VBA mais je suis un peu familier avec la programmation, donc ce qui me fait défaut est sûrement la syntaxe en grande partie.
Mon problème est le suivant: je me suis inspiré (grandement) de votre tutoriel pour récupérer les noms des fichiers et les enregistrer dans A1, A2, …
Il me semble que la syntaxe est correcte, mais lorsque je tente l’exécution, rien ne se produit. Ni message d’erreur, ni écriture des noms de fichiers dans les cases souhaitées.
J’ai évidemment fait plusieurs recherches sur le net pour en savoir plus mais n’ai rien trouvé qui puisse m’aider..
Le code ressemble à ça:
Sub fileList()
Dim folder As String, file As String
Dim i As Integer
folder = « \\svm-docs\utilisateurs\j.coury\Desktop\Docs\Entretiens Professionnels »
i = 0
file = Dir(folder)
Do While file « »
i = i + 1
Sheets(« Feuil1 »).Range(« A » & i) = file
file = Dir
Loop
End Sub
Si quelqu’un a des renseignements ou des corrections à m’apporte, merci d’avance.