Bonjour à tous,
j'utilise la fonction ci-dessous, qui recherche un fichier dans les sous répertoires ou se trouve mon fichier excel. Les données d'entrée de la fonction sont:
- expression à rechercher (nom du fichier)
- racine à partir de laquelle commencer la recherche
La valeur que doit renvoyer la fonction est le chemin ou se trouve le fichier.
problème :
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 Function Explorer(p_strFichier As String, p_strCheminDepart As String, Optional p_oFld As Scripting.Folder) As String On Error GoTo err Dim oFSO As Scripting.FileSystemObject Dim oFld As Scripting.Folder Dim oFl As File Dim Chemin As String If p_oFld Is Nothing Then 'Instanciation du FSO (déclare l'objet FSO (gestion des dossiers et fichiers)) Set oFSO = New Scripting.FileSystemObject 'Accède au répertoire du départ de recherche Set p_oFld = oFSO.GetFolder(p_strCheminDepart) End If Set oFl = p_oFld.Files(p_strFichier) MsgBox oFl.Path Explorer = oFl.Path Exit Function SubDir: 'Explore les sous-dossiers For Each oFld In p_oFld.SubFolders Explorer p_strFichier, p_strCheminDepart, oFld DoEvents Next oFld fin: Exit Function err: Select Case err.Number Case 53: Resume SubDir 'Case Else: ' MsgBox "Erreur inconnue" ' Resume fin End Select End Function
Une fois la fonction terminée, chemin est vide (renvoit : "")
cela semble venir de Exit Function (en mode pas à pas, je vois que c'est au moment ou exit function est exécuté que le renvoi de "explorer" se vide)
Partager