Leçon 5 / 6 — Chapitre 5: UserForm, fichiers et organisation du code
Parcourir un dossier avec Dir()
Une macro qui doit traiter tous les fichiers d'un dossier (les importer, les renommer, vérifier leur présence) a besoin de lister ces fichiers par code, sans savoir à l'avance combien il y en a ni leurs noms exacts. La fonction Dir() répond à ce besoin.
Le fonctionnement particulier de Dir()
Sub ListerFichiers()
Dim nomFichier As String
nomFichier = Dir("C:\Data\")
Do While nomFichier <> ""
Debug.Print nomFichier
nomFichier = Dir()
Loop
End Sub
Le PREMIER appel, Dir("C:\Data\"), précise le dossier à explorer et renvoie le nom du premier fichier trouvé. Chaque appel SUIVANT, Dir() SANS AUCUN ARGUMENT, renvoie le nom du fichier suivant dans ce même dossier — VBA se souvient en interne d'où il en était. Quand il n'y a plus de fichier à renvoyer, Dir() renvoie une chaîne vide "", ce qui arrête la boucle Do While.
Filtrer par type de fichier
nomFichier = Dir("C:\Data\*.xlsx")
Le caractère * agit comme un joker : cet appel ne renvoie que les fichiers dont le nom se termine par .xlsx, en ignorant les autres.
Exemple concret : un dossier reçoit chaque jour plusieurs fichiers d'export au format CSV, avec un nom différent à chaque fois. Une macro utilisant Dir() parcourt le dossier, ouvre chaque fichier CSV trouvé, en extrait les données utiles, puis passe au suivant — sans jamais avoir besoin de connaître les noms de fichiers à l'avance.
À vous de jouer : dans vos propres mots, expliquez pourquoi le premier appel à Dir() prend un argument (le chemin du dossier) alors que les appels suivants, dans la boucle, s'écrivent Dir() sans aucun argument. Que se passerait-il si chaque appel dans la boucle réutilisait le chemin complet ?
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 76 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès