Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Choix d'un dossier

4 réponses
Avatar
Rosalie Mignon
Bonjour

Je voudrais que l'utilisateur de mon programme puisse choisir a l'aide d'un
"explorateur" le dossier dans lequel copier ses sauvegardes.

J'ai essaye avec Commondialog, mais je n'arrive pas a imposer que
l'affichage des dossiers.
J'ai essaye avec DirListBox, mais il faut un double click pour que le
dossier soit pris en compte, ce qui est genant vu que l'affichage
donne l'impression que le dossier est selectionne alors que ce n'est pas le
cas.

Auriez vous une solution ?

Merci d'avance.

4 réponses

Avatar
at
Rosalie Mignon a utilisé son clavier pour écrire :
Bonjour

Je voudrais que l'utilisateur de mon programme puisse choisir a l'aide d'un
"explorateur" le dossier dans lequel copier ses sauvegardes.

J'ai essaye avec Commondialog, mais je n'arrive pas a imposer que l'affichage
des dossiers.
J'ai essaye avec DirListBox, mais il faut un double click pour que le dossier
soit pris en compte, ce qui est genant vu que l'affichage
donne l'impression que le dossier est selectionne alors que ce n'est pas le
cas.

Auriez vous une solution ?

Merci d'avance.




Ajoute un module, colle lui ça

===============================
Private Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal
pidList As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal
lpString1 As String, _
ByVal lpString2 As String) As Long

Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

Public Function SelectFolder(Titre As String, Handle As Long) As String

Dim lpIDList As Long
Dim strBuffer As String
Dim strTitre As String
Dim tBrowseInfo As BrowseInfo

strTitre = Titre
With tBrowseInfo
.hWndOwner = Handle
.lpszTitle = lstrcat(strTitre, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With

lpIDList = SHBrowseForFolder(tBrowseInfo)

If (lpIDList) Then
strBuffer = String(260, vbNullChar)
SHGetPathFromIDList lpIDList, strBuffer
SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
End If

End Function



===============
A appeler depuis ta form avec

Dim mypath,myname

' boite de dialogue pour les dossiers.
mypath = SelectFolder("Sélectionnez un répertoire :", Me.hWnd) & ""

MsgBox mypath


-------------------

A+
Avatar
at
Après mûre réflexion, Rosalie Mignon a écrit :
Bonjour

Je voudrais que l'utilisateur de mon programme puisse choisir a l'aide d'un
"explorateur" le dossier dans lequel copier ses sauvegardes.

J'ai essaye avec Commondialog, mais je n'arrive pas a imposer que l'affichage
des dossiers.
J'ai essaye avec DirListBox, mais il faut un double click pour que le dossier
soit pris en compte, ce qui est genant vu que l'affichage
donne l'impression que le dossier est selectionne alors que ce n'est pas le
cas.

Auriez vous une solution ?

Merci d'avance.



Je complète, car avec dirlistbox tu peux aussi le faire,


Private Sub Dir1_click()
MsgBox Dir1.List(Dir1.ListIndex)
End Sub


Et bien sur tu peux definir un chemin avec dir1.path="c:dossiers"
Avatar
Rosalie Mignon
Rapide,Clair, efficace !

un grand bravo!

Merci.


"at" a écrit dans le message de news:
4b8d6e5b$0$17856$
Après mûre réflexion, Rosalie Mignon a écrit :
Bonjour

Je voudrais que l'utilisateur de mon programme puisse choisir a l'aide
d'un "explorateur" le dossier dans lequel copier ses sauvegardes.

J'ai essaye avec Commondialog, mais je n'arrive pas a imposer que
l'affichage des dossiers.
J'ai essaye avec DirListBox, mais il faut un double click pour que le
dossier soit pris en compte, ce qui est genant vu que l'affichage
donne l'impression que le dossier est selectionne alors que ce n'est pas
le cas.

Auriez vous une solution ?

Merci d'avance.



Je complète, car avec dirlistbox tu peux aussi le faire,


Private Sub Dir1_click()
MsgBox Dir1.List(Dir1.ListIndex)
End Sub


Et bien sur tu peux definir un chemin avec dir1.path="c:dossiers"




Avatar
at
Rosalie Mignon a couché sur son écran :
Rapide,Clair, efficace !

un grand bravo!

Merci.




Avec plaisir :)