Boîte de dialogue choix d'un dossier

Comment faire pour ouvrir une boite de dialogue permettant à l'utilisateur de choisir un répertoire ? Et comment ensuite récupérer le chemin de celui ci ?

Place ceci dans un module de ton classeur (pas dans un module de feuille, c'est une fonction...)

Public Type BROWSEINFO  hOwner As Long  pidlRoot As Long  pszDisplayName As String  lpszTitle As String  ulFlags As Long  lpfn As Long  lParam As Long  iImage As Long  
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
Dim Dossier as string
bInfo.pidlRoot = 0&
If IsMissing(Msg) Then
bInfo.lpszTitle = "Choisissez un dossier de destination pour les sauvegardes."
Else
bInfo.lpszTitle = Msg
End If
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Dossier = GetDirectory & ""
Else
GetDirectory = ""
End If
End Function

Tu peux utiliser cette fonction en l'appellant depuis une autre macro. Tu récupères le chemin du dossier sélectionné dans la variable "Dossier" Tu peux en voir un exemple d'utilisation dans le classeur exemple.
Astuce illustrée par ce classeur
fc-sauvegardeauto

Auteur(s) : 

Ce mois-ci sur Excelabo

- Pas de nouvelle page.
- 7 pages modifiées.