Tout se passe dans Application.FileSearch.
Exemple :
Sub Recherche()
With Application.FileSearch
D'abord réinitialiser les critères (Attention : Le LookIn
ne se réinitialise pas comme ça)
.NewSearch
Pour mettre à jour la liste des dossiers, au cas ou on viendrait
de créer un nouveau dossier par VBA :
.RefreshScopes
Dossier(s) de recherche :
.LookIn = "D:\atelier;C:\Toto"
Fichiers à rechercher (J'ai essayé plusieurs formes "a*.php;C*.*"
mais ça ne marche pas:
.FileName = "*.*" recherche tous les fichiers
.FileName = "C.php" recherche tous les fichiers qui contiennent c
ou C quelque par dans leur nom, et qui se terminent par .php ou .PHP
.Filename = "a*.php;C*.*"
Le type de fichiers qu'on recherche. Ici, tous, et de toute façon,
on a déjà filtré avec .FileName. Mais on peut par exemple
indiquer msoFileTypeExcelWorkbooks qui va extraire tous les fichiers Excelé
(XLA, XLT, XLS, XLW)
.FileType = msoFileTypeAllFiles
Tous les fichiers créés ou modifiés cette semaine
:
.LastModified = msoLastModifiedThisWeek
On va rechercher dans les sous dossiers d'atelier et Toto :
.SearchSubFolders = True
C'est parti :
.Execute
Une boucle traditionnelle pour parcourir les fichiers trouvés.
FoundFiles(Ctr) n'a pas de propriétés. Par exemple, pas question
d'avoir le nom du fichier sans le dossier, ou même sa date de création
(en tout cas par la méthode FoundFiles)
For Ctr = 1 To .FoundFiles.Count
Cells(Ctr, 1) = .FoundFiles(Ctr)
Next
End With
End Sub
---