bonsoir
j'ai trouvé sur l'excellent site boisgontierj une macro qui permet de chercher un répertoire dans un emplacement donné.
Mon problème: cette macro cherche dans les sous répertoires. Malheureusement je ne comprends pas assez la puissance de fso et je suis incapable de lui dire de ne pas aller fouiller dans les sous répertoires, ce qui dans mon cas rajoute 5 minutes de recherche inutiles car je veux me cantonner au premier niveau du répertoire racine.
Savez-vous comment faire?
Merci d'avance.
Cyril
ci dessous la macro presque parfaite:
Recherche un répertoire (FileSystemObject)
'Cocher Microsoft Scripting RunTime
Dim repCherché
Sub arborescence()
racine = "c:\"
repCherché = InputBox("Nom du répertoire cherché?")
[A:A].Clear
Range("A3").Select
Set fs = CreateObject("Scripting.FileSystemObject")
Set dossier_racine = fs.getfolder(racine)
Lit_dossier dossier_racine, 1
End Sub
Sub Lit_dossier(ByRef dossier, ByVal niveau)
If UCase(dossier.Name) Like "*" & UCase(repCherché) & "*" Then
ActiveCell.Value = dossier.Path
ActiveCell.Offset(1, 0).Select
End If
On Error Resume Next
For Each d In dossier.SubFolders
Lit_dossier d, niveau + 1
Next
End Sub
j'ai trouvé sur l'excellent site boisgontierj une macro qui permet de chercher un répertoire dans un emplacement donné.
Mon problème: cette macro cherche dans les sous répertoires. Malheureusement je ne comprends pas assez la puissance de fso et je suis incapable de lui dire de ne pas aller fouiller dans les sous répertoires, ce qui dans mon cas rajoute 5 minutes de recherche inutiles car je veux me cantonner au premier niveau du répertoire racine.
Savez-vous comment faire?
Merci d'avance.
Cyril
ci dessous la macro presque parfaite:
Recherche un répertoire (FileSystemObject)
'Cocher Microsoft Scripting RunTime
Dim repCherché
Sub arborescence()
racine = "c:\"
repCherché = InputBox("Nom du répertoire cherché?")
[A:A].Clear
Range("A3").Select
Set fs = CreateObject("Scripting.FileSystemObject")
Set dossier_racine = fs.getfolder(racine)
Lit_dossier dossier_racine, 1
End Sub
Sub Lit_dossier(ByRef dossier, ByVal niveau)
If UCase(dossier.Name) Like "*" & UCase(repCherché) & "*" Then
ActiveCell.Value = dossier.Path
ActiveCell.Offset(1, 0).Select
End If
On Error Resume Next
For Each d In dossier.SubFolders
Lit_dossier d, niveau + 1
Next
End Sub