Bonjour,
Est-il possible d'attribuer à une variable le chemin d'accès à un dossier, comme on peut le faire sous windows avec "parcourir" ?
par exemple attribuer à la variable "acces" le texte : "C:\charente\propriétaires"
Bonjour,
Est-il possible d'attribuer à une variable le chemin d'accès à un dossier, comme on peut le faire sous windows avec "parcourir" ?
par exemple attribuer à la variable "acces" le texte : "C:\charente\propriétaires"
bonjour, oui c'est faisable, mais que veux-tu faire exactement ?
mettre "C:\MonSuperDossierAMoi" dans une variable rep de type string ?
=>
ou alors tu passes par un explorateur qui te retourne le dossier directement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part rep = "C:\MonSuperDossierAMoi"
je veux passer par un explorateur
recherche getopenfilename sur le forum, il y a deja de nombreux exemples.
Tiens je suis en ce moment sur ce sujet moi aussi ,
regarde dans la faq ici : Comment ouvrir une fenêtre de sélection de répertoire ?
et mon projet se rapproche du tiens le fil de ma discussion : Selection d'un dossier et récupration du chemin
A plus
il faut mettre tout ça (je suis sous access 2002)?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 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
La fonction suivante ouvre la fenêtre de sélection de répertoire standard de Windows et renvoie le chemin du répertoire
sélectionné. Les paramètres attendus sont le titre à afficher et l'identifiant de la fenêtre parente.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 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
en fait la commande "SelectFolder" n'est pas reconnue. Je n'ai rien vu dans l'aide.
(Je n'y connais pas grand chose)
merci
Cette discussion fait presque un double post , mais je vais récapituler les codes.
1- tu crée un module de code ; dans ce module tu colle cela ;
la première partie ce sont les déclarations , la seconde la focntion souhaité :
2-1Ensuite pour appeler cette fonction tu peux le faire d'un formulaire par ex , en créant un bouton , et en glissant ce code sur clic :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
43
44
45
46 Private Const BIF_RETURNONLYFSDIRS = 1 Private Const BIF_DONTGOBELOWDOMAIN = 2 Private Const BIF_NEWDIALOGSTYLE As Long = &H40 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 + BIF_NEWDIALOGSTYLE 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
2-2 ou d'un autre module de code , ou par exemple a la suite de ce que tu a copier dans le module :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Commande0_Click() Dim Msg, Style, Title, Resultat rep = SelectFolder("Sélectionnez un répertoire :", Me.Hwnd) Msg = "chemin : " & rep & " ." Style = vbOKOnly + vbInformation Title = "Voici le chemin" Resultat = MsgBox(Msg, Style, Title) End Sub
ton chemin "rep" tu peux le mettre dans une zone de texte ou autre. tu en fait ce que tu veux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub test() Dim Msg, Style, Title, Resultat rep = SelectFolder("Sélectionnez un répertoire :", Application.hWndAccessApp) Msg = "chemin : " & rep & " ." Style = vbOKOnly + vbInformation Title = "Voici ton chemin" Resultat = MsgBox(Msg, Style, Title) End Sub
Nicko
j'ai compris.
merci
j'ai plus qu'a essayer.
Salut
Pour affichez un explorateur plus facilement
- ajout la référence Microsoft Office 11.0 Object Library à ton projet
- Puis utilise Application.FileDialog(msoFileDialogFolderPicker)
- Positionne le curseur sur FileDialog puis appuie sur F1 pour voir ses propriétés et méthode
Pour plus de pratiques voir ici
@+
merci à tous j'ai compris et ça marche.
En fait c'est pas si compliqué que ça!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager