Avez vous besoin de vérifier si un dossier existe? En VBA, tester l'existence d'un dossier (répertoire) est une affaire assez simple. Pour cela, tout comme lors de la vérification si un fichier existe en VBA, nous allons utiliser la combinaison de deux fonctions VBA : Len et Dir
La fonction Dir retourne le nom du répertoire spécifié (en tant que variable de type String
). Il suffit ensuite de déterminer la longueur du résultat avec la fonction Len. Si le résultat est >0
, cela signifie que le dossier existe.
Contrairement à la vérification de l'existence d'un fichier, il est nécessaire de mentionner dans la fonction Dir que nous cherchons un dossier. Cela se fera en utilisant la constante vbDirectory
en tant que seconde argument (optionnel) de la fonction Dir.
Après la théorie, voici donc la pratique…
Fonction VBA pour tester l'existence d'un dossier
La fonction suivante utilise un paramètre (de type String
) qui contient le chemin complet vers le dossier testé. Le résultat retourné par la fonction sera l'une des valeurs True
(si répertoire existe) ou False
(s'il n'existe pas).
La présence ou non de la barre oblique inverse ("\") à la fin du chemin du dossier n'influence pas le résultat. Donc peu importe si vous utilisez C:\Temp
ou C:\Temp\
, le résultat sera le même…
1 2 3 4 5 6 7 8 9 |
Public Function DossierExiste(MonDossier as String) 'par Excel-Malin.com ( https://excel-malin.com ) If Len(Dir(MonDossier, vbDirectory)) > 0 Then DossierExiste = True Else DossierExiste = False End If End Function |
Exemple de vérification de l'existence d'un dossier en VBA
Ci-dessous, vous trouverez le code VBA qui illustre l'utilisation de la fonction DossierExiste
dont le code se trouve plus haut.
Dans cet exemple, on vérifie si le dossier "Dossier_test" existe sur le disque "C:\".
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub TesteSiDossierExiste() 'par Excel-Malin.com ( https://excel-malin.com ) Dim MonDossier As String MonDossier = "C:\Dossier_test" If DossierExiste(MonDossier) = True Then MsgBox "Le dossier existe..." Else MsgBox "Le dossier n'existe pas..." End If End Sub |
Pour aller plus loin en VBA
Si un répertoire n'existe pas, il ne reste alors qu'à le créer! Rien de plus facile: VBA est là pour cela: Création des dossiers et sous-dossiers en VBA
Et si le dossier existe, vous pouvez facilement le copier: VBA: copier un dossier et son contenu
Vous pouvez trouver plus d'informations sur la fonction Dir sur la page internet qui lui est dédiée sur le site de Microsoft.
Et pour terminer, voici quelques tutoriels et codes VBA qui pourraient vous être utiles…
- Liste de toutes les fonctions disponibles en VBA
- La structure Select Case en VBA – comment facilement gérer des conditions multiples
- Fonctions Excel en VBA: comment utiliser RECHERCHEV directement en VBA
- Débloquer VBA dans les fichiers venant d'internet
- Compresser et décompresser avec ZIP en VBA
3 commentaires sur “VBA: Vérifier si le Dossier existe”
Je n'imaginais pas que c'était aussi simple…
Merci!
Bonsoir,
Auriez vous une idée pour tester la présence d'un dossier sur Sharepoint?
merci de votre réponse
Bonsoir Grdel,
dans le cas de SharePoint, vous devez d'abord adapter le chemin du dossier:
-> ce code va adapter le url de SharePoint vers le format "dossier classique". Cela va marcher dans le cas de dossier sécurisé (
https:
) et aussi non sécurisé (http:
)Avec le chemin ainsi "corrigé", vous pourrez utiliser les fonctions classiques de gestion de dossiers en VBA.
J'espère que cela va vous aider.
Cordialement, Martin