Comment utiliser la fonction Dir dans VBA ?

La fonction `Dir` en VBA (Visual Basic for Applications) est utilisée pour obtenir le nom d’un fichier, d’un répertoire ou d’un ensemble de fichiers et de répertoires qui correspondent à un chemin spécifié. Elle est souvent utilisée pour itérer sur les fichiers dans un dossier ou pour vérifier l’existence d’un fichier ou d’un dossier. Voici comment l’utiliser :

Utilisation de base

Dim fileName As String

' Exemple pour obtenir le premier fichier avec l'extension .txt dans un dossier
fileName = Dir("C:exemple*.txt")

' Vérifier si un fichier est trouvé
If fileName <> "" Then
    MsgBox "Fichier trouvé : " & fileName
Else
    MsgBox "Aucun fichier .txt trouvé."
End If

Itérer sur tous les fichiers d’un dossier

Pour parcourir tous les fichiers d’un certain type dans un dossier, vous devez appeler `Dir` sans argument après le premier appel pour obtenir le prochain fichier :

Dim fileName As String

' Obtenir le premier fichier .txt
fileName = Dir("C:exemple*.txt")

Do While fileName <> ""
    ' Traitez chaque fichier ici
    Debug.Print fileName
    
    ' Obtenir le fichier suivant
    fileName = Dir
Loop

Vérifier l’existence d’un fichier ou d’un répertoire

Vous pouvez aussi utiliser `Dir` pour vérifier si un fichier ou un dossier existe :

Dim filePath As String
filePath = "C:exemplemonfichier.txt"

If Dir(filePath) <> "" Then
    MsgBox "Le fichier existe."
Else
    MsgBox "Le fichier n'existe pas."
End If

Paramètres supplémentaires

  Dim dirName As String

  ' Trouver le premier répertoire
  dirName = Dir("C:exemple*", vbDirectory)

  Do While dirName <> ""
      ' Vérifier qu'il ne s'agit pas de . ou ..
      If (GetAttr("C:exemple" & dirName) And vbDirectory) = vbDirectory Then
  • Attributs : Vous pouvez spécifier des attributs de fichiers pour affiner votre recherche, par exemple `vbDirectory` pour trouver des dossiers.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project