VBA: Ouvrir Dossier dans Windows Explorer

VBA est un langage qui peut être utilisé non seulement avec la suite Microsoft Office mais également, de manière générale, avec le système d'exploitation Windows. C'est ainsi qu'il est possible d'ouvrir un dossier particulier dans une nouvelle fenêtre de l' "Explorateur Windows"" (= l'explorateur des dossiers par défaut dans Windows, "Windows Explorer" en anglais)) avec VBA.

VBA: ouvrir dossier dans Windows Explorer
VBA: ouvrir dossier dans Windows Explorer

Pour faire cela, on fera appel à la fonction VBA  Shell. Cette fonction permet au VBA de lancer une application / un logiciel (ici l'explorateur de dossiers Windows Explorer) en Windows. Nous, on va s'en servir pour ouvrir l'Explorateur Windows.

Appel à la fonction Shell pour ouvrir un dossier en VBA

Le code qui suit montre les différents paramètres de l'appel à la fonction Shell:

 

Dim MonDossier As String
MonDossier = "C:\dossier_test\sous_dossier\"

Shell Environ("WINDIR") & "\explorer.exe " & MonDossier, vbNormalFocus

Dans cet exemple, la fonction est paramétrée pour ouvrir le dossier (fictif) C:\dossier_test\sous_dossier\

On fait passer dans cette fonction les trois arguments suivants:

  1. le chemin de l'application à ouvrir: Environ("WINDIR") & "\explorer.exe"
  2. le chemin du dossier à ouvrir dans Windows Explorer: le contenu de la variable MonDossier
  3. l 'information concernant la manière d'afficher le dossier nouvellement ouvert

Le paramètre vbNormalFocus ouvre le dossier dans une fenêtre normale qui sera active. Selon votre besoin, vous pouvez le remplacer par:

  • vbNormalNoFocus (taille normale, fenêtre pas active)
  • vbMaximizedFocus (taille maximisée, fenêtre active)
  • vbMinimizedFocus (taille minimisée, affichée comme une icône active)
  • vbMinimizedNoFocus (taille minimisée,  affichée comme une icône inactive)

Suivent deux codes VBA complets et prêts à l'utilisation (il suffit de les copier/coller) dans votre fichier/projet.

Procédure VBA: Ouvrir un dossier (nom du dossier est dans le code)

Voici l'utilisation la plus simple et la plus directe – le nom du dossier fait partie du code VBA. Pour éviter des erreurs, une vérification a été ajouté pour tester si le dossier que l'on veut ouvrir existe. Ce test est cependant facultatif.

Sub OuvrirFenetreAvecDossier()
Dim MonDossier As String
MonDossier = "C:\Test" '<-- adaptez le nom du Dossier

If Len(Dir(MonDossier, vbDirectory)) > 0 Then 'vérifie si le Dossier existe
   Shell Environ("WINDIR") & "\explorer.exe " & MonDossier, vbNormalFocus
End If

End Sub

 

Fonction VBA: Ouvrir un dossier (nom du dossier est dans une variable)

Et voici le code VBA sous forme d'une fonction – la solution plus flexible à utiliser dans des projets plus complexes. Cette fonction a un argument (de type String) qui contient le chemin vers le Dossier. Comme pour le code VBA précédent, la vérification de l'existence du dossier a été ajouté.

Public Function FenetreAvecDossier(MonDossier As String)
'par: Excel-Malin.com ( https://excel-malin.com )

If Len(Dir(MonDossier, vbDirectory)) > 0 Then 'vérifie si le Dossier existe
     Shell Environ("WINDIR") & "\explorer.exe " & MonDossier, vbNormalFocus
End If

End Function

 

Remarque: comme vous l'avez constaté, on fait appel également à la fonction VBA Environ() qui nous permet d'obtenir les informations concernant le système. Pour en savoir plus sur cette fonction VBA, voici un tutoriel dédié: Explications et exemples d'utilisation de la fonction Environ()

 

Pour aller plus loin en VBA

Je vous propose sur ce site d'autres articles qui pourraient vous servir lors de votre travail avec VBA. Par exemple…

90 0

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée.

11 commentaires sur “VBA: Ouvrir Dossier dans Windows Explorer”