Bonjour à tous,
Je suis débutant en VBA et je vous sollicite pour un petit problème qui me paraît un peu obscur.
J'aimerais utiliser la boîte de dialogue 'FileDialog' pour retourner le nom du chemin sélectionné par l'utilisateur. Concrètement le code ressemble à ça :
'Fonction permettant le choix du fichier
Function GetFolder(strPath As String) As String
Dim fldr As FileDialog
Dim sItem As String
With fldr
.title = "Select a Folder"
.AllowMultiSelect = False
.InitialFileName = strPath
If .Show<> -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function
'Macro d'exemple
Sub Test()
MsgBox GetFolder("")
End Sub
Ce code fonctionne sauf quand l'utilisateur choisit le dossier par défaut en cliquant sur 'OK' immédiatement. En effet, au premier appel à cette fonction, l'utilisateur peut choisir le dossier par défaut sans problème ; cependant, lors d'un appel ultérieur, le bouton 'OK' est inutilisable sur le dossier par défaut.
J'ai essayé de mettre un espion sur l'objet fldr pour comprendre ce qu'il se passe et je me suis aperçu des comportements suivants :
Quelqu'un a-t-il une idée sur ce sujet s'il vous plaît ?
Je vous remercie par avance pour toutes vos réponses apportées !