C'est un peu plus compliqué,
Si tu ouvres le fichiers et que tu appuies sur ALT+F11 cela va ouvrir l'editeur VBA.
Dans la partie de gauche tu as le projet avec
Le code associé au feuil1, feuil2 etc.... (onglet)
Le code associé a la FORM (ici le nom de la Form est Recherche
Le code associé au module. (le code ici DOIT être dans un module pour fonctionner je pense)
En résumé :
Le code contenu dans la Feuil1 (pour que la recherche s'effectue et que la Forms Recherche s'ouvre avec la liste peuplé)
Private Sub Recherche_Button_Click()
Dim matricule_recherche As String
Dim objFSO, objDossier, objFichier
matricule_recherche = Range("B19").Value
repertoiresource = Cells(2, 1)
'On va parcourir les fichiers de types DOC et PDF
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDossier = objFSO.GetFolder(repertoiresource) 'On ouvre le repertoire source
Recherche.ListBox1.Clear
'Peuple la listeBox
If (objDossier.Files.Count > 0) Then 'Si il y a des fichiers
For Each objFichier In objDossier.Files
If ((InStr(1, objFichier.Name, ".DOC", 1) > 0) Or (InStr(1, objFichier.Name, ".PDF", 1) > 0)) And (InStr(1, objFichier.Name, matricule_recherche, 1) > 0) Then
Recherche.ListBox1.AddItem objFichier.Name
End If
Next
End If
Recherche.Label1 = "Matricule : " & matricule_recherche
Recherche.Show
End Sub
Le code contenu dans la Form Recherche (pour que quand tu double click cela lance l'ouverture du fichier)
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
fName = repertoiresource & "\" & ListBox1.Value 'Ou le nom du fichier que vous voulez ouvrir
RetVal = ShellExecute(hwnd, "Open", fName, ByVal 0&, 0&, SW_Normal)
End Sub
Le code contenu dans le module (qui contient la déclaration de fonction ShellExecute et aussi la déclaration du répertoire en public.)
Public repertoiresource As String
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const SW_SHOWNORMAL = 1
Donc si tu veux mettre le repertoire en Dur dans le code il faut simplement remplacer la ligne dans le code de la feuil1 :
repertoiresource = Cells(2, 1)
Par
repertoiresource = "C:\Monchemin" 'Attention pas de \ a la fin.
Dis moi si c'est OK pour toi.
Damien