Re,
Tu sais qu'il existe des moulinettes pour aller chercher dans les répertoires et sous répertoires et récupérer le chemin d'accès d'un fichier souhaité
Sinon pour accéder directement à un dossier, voici un code que j'utilise parfois
Option Explicit
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Sub test()
Dim sFilter$
sFilter = "Classeurs Excel (*.xls)" & Chr(0) & "*.xls" & Chr(0)
MsgBox GetFileName(sFilter, "D:\", "Essai")
End Sub
Function GetFileName(sFilter As String, sInitialDir As String, sTitle As String) As String
Dim OpenFile As OPENFILENAME
Dim lReturn As Long
With OpenFile
.lStructSize = Len(OpenFile)
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
.lpstrInitialDir = sInitialDir
.lpstrTitle = sTitle
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
GetFileName = ""
Else
GetFileName = Trim(OpenFile.lpstrFile)
End If
End Function
A+