Dim objShell As Object, objFolder As Object
Dim SecuriteSlash As Integer
'Crée une instance Windows Shell
Set objShell = CreateObject("Shell.Application")
'La méthode BrowseForFolder permet de créer une boite de dialogue
'http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/objects/shell/browseforfolder.asp
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next
'Récupère le chemin sélectionné
Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path
'objFolder.Title renvoie le dossier selectionné
'Verifie si l'utilisateur a cliqué sur la croix ou le bouton "Annuler"
If objFolder.Title = "" Then Chemin = ""
'Verifie si c'est la racine qui a été sélectionnée ( par exemple C: )
SecuriteSlash = InStr(objFolder.Title, ":")
'Si c'est la racine qui est sélectionnée , objFolder.Title renvoie une chaine de
'type "NomDisque(C:)
'La ligne suivante permet de remettre en forme pour obtenir C:
If SecuriteSlash > 0 Then Chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""