Bonjour
je souhaite utiliser la propriété .hWnd dans un programme fait en VBA. J'ai un message d'erreur me disant que cette propriété est inconnue.
Comment y remédier ?
merci.
Bonjour
je souhaite utiliser la propriété .hWnd dans un programme fait en VBA. J'ai un message d'erreur me disant que cette propriété est inconnue.
Comment y remédier ?
merci.
Bonjour !
Pourrais-tu préciser un peu sur cette propriété, s'il te plait ?
-Wintermute
mon but est d'ouvrir une fenetre permettant de sélectionner un répertoire. Poue ce faire, il y a une aide dans la FAQ. Mais ce code ne marche qu'en VB et non en VBA. Le problème vient de hWnd utilisé dans le code :
avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MsgBox SelectFolder("Sélectionnez un répertoire :", Me.hWnd)
et la déclaration :
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
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 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
est ce qq1 peut me dire comment faire cela en VBA ?
Ajoute cette déclaration :
... et remplace ensuite ton instruction par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Bonne chance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MsgBox SelectFolder("Sélectionnez un répertoire :", _ FindWindow(vbNullString, Application.Caption))
oki, merci beaucoup, ça marche !
A bientôt !
Salut!
j'utilise cette fonction dont je voudrais l'appeler avec un bouton qui me demandrait de choisir le dossier et une fois le choix fait que le textbox affiche le chemin mais la tout ce qu'on peut faire c'est d'afficher un msgbox avec le chemin.
quelqu'un sait comment faire ??
merci![]()
arf c'était facile j'ai trouvé lol...
faut juste mettre ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Text2.Text = SelectFolder("Sélectionnez un répertoire :", Me.hWnd)![]()
Partager