1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
Function ChoixDossierFichier(SelType As Byte) As String
Dim objShell As Object, objFolder As Object
Dim Chemin As String, Msg As String
Dim FlagChoix As Long, NbPoint As Integer
If SelType = 0 Then
FlagChoix = &H1
Msg = "Sélectionner un dossier :"
Else
FlagChoix = &H4000
Msg = "Sélectionner un fichier :"
End If
Set objShell = CreateObject("Shell.Application")
' &h1
' 1er paramètre toujours 0 (zéro). Il représente le handle de la fenêtre parent
' &h1
' 2ème paramètre Titre de la boite, en dessous de la barre de titre
' &h1
' 3ème paramètre options de BrowseForFolder
' &h1
' 4ème paramètre Facultatif. Répertoire de début d'exploration
On Error Resume Next
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, FlagChoix)
' &h1
'Si l 'objet retourné est valide, on teste son contenu (item.title)
'Si on a sélectionné la racine d'une partition, il se compose du nom de la partition,
' suivi de sa lettre et ":" entre parenthèses
NbPoint = InStr(objFolder.Title, ":")
If NbPoint = 0 Then
' &h1
'Sinon, il se compose du nom du dossier uniquement, sans le chemin précédent
'On récupère ce chemin à l'aide des propriété et méthode ParentFolder.ParseName
Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).path & ""
Else
' &h1
' si racine on récupère la lettre du lecteur et les 2 points
Chemin = Mid(objFolder.Title, NbPoint - 1, 2)
End If
ChoixDossierFichier = Chemin
End Function |
Partager