Bonsoir Robert, Didier, Michel, le Forum
Oui en effet çà n'a rien à voir avec un UserForm et même si ce genre de macro était lancée depuis un UserForm le reload de celui-ci n'y changerait rien.
Comme le dit Didier le ChDir doit être avant l'instruction GetOpenFilename, cependant ce n'est pas "fairplay" de changer le répertoire par défaut de l'utilisateur ceci sans remettre de l'ordre en sortant.
Voici comment faire :
Sub GetOpenOnDirectory()
Dim TheFile As Variant
Dim ThePath As String
Dim UserDir As String
Dim WB As Workbook
ThePath = "C:\Mes Documents\Factures" '<<<< à adapter of course
'ici on mémorise le répertoire par défaut
UserDir = CurDir
'ici on change le répertoire
ChDir ThePath
TheFile = Application.GetOpenFilename("Excel Files(*.xls),*.xls")
If TheFile = False Then ChDir UserDir: Exit Sub '<<< si on annule
'ici c'est pour faire une action bidon
Set WB = Workbooks.Open(TheFile)
With WB.Worksheets(1)
.PageSetup.RightHeader = "MAJ le " & Format(Now, "YYYY-MM-DD") & " par " & Application.UserName
End With
'ici c'est pour remettre le répertoire par défaut tel qu'il était AVANT cette macro
ChDir UserDir
End Sub
Bonne soirée
@+Thierry