Bonjour,
Je travaille sur Visual basic 6 sous CATIA. et oui ça arrive
Alors voilà, j'aurais besoin de vos lumières.
J'ai besoin d'utiliser un bouton parcourir pour sélectionner un répertoire.
Quand l'utilisateur choisi son répertoire, une variable stock le chemin complet.
Voici le code de mon bouton "Parcourir" :
--------------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub CmdBrowseJobDirectory_Click() 'Récupération du chemin de Travail MsgBox SelectFolder("Sélectionnez un répertoire :", Me.hWnd) strPathJob = "ma_variable" ' Permet de modifier la valeur Text du champ de texte. txtPathJobDirectory.text = strPathJob 'indique le chemin complet txtPathJobDirectory.BackColor = &H80000005 'change la couleur du label 'initialisation des variables pour les chemins de transfert/copie de fichier strPathJobIN = strPathJob & "\IN\" strPathJobOUT = strPathJob & "\OUT\" End Sub
Pour ça, j'utilise un module nommé; selectJobDirectory dont le code est :
--------------------------------------------------------------------------
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 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 Declare Function FlashWindow Lib "user32" (ByVal hWnd As Long, ByVal bInvert As Long) As Long 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
Alors, quand je click sur mon bouton, le programme s'arrête sur
--------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub CmdBrowseJobDirectory_Click() 'Récupération du chemin de travail MsgBox SelectFolder("Sélectionnez un répertoire :", Me.hWnd)
je ne sais pas pourquoi?
Pleins de sites me propose ce type de code et il semble ne rien manqué.
Si ce n'est qu'il faudra que je mette tous ça dans une variable strPathJob.
Enfin, si vous pouvez m'aider, j'en serais très heureux
Bien à vous.
Cordialement,
Patrick
Partager