Re: recherche classeur par CreateObject("Scripting.FileSystemObject")
bonjour Antoine
cela ne sert à rien de multiplier les posts pour un meme sujet
je te conseille avant tout de lire ( ou de relire ) la charte du forum XLD
Charte XLD
la procedure ci dessous ( adaptée de Ole P Erlandsen ) , permet de rechercher des classeurs dans un repertoire et les sous répertoires , et de les ouvrir en fonction d'un mot clé saisi dans un InputBox
la procedure necessite d'activer la reference "Microsoft Scripting Runtime "
Sub rechercheFichiers_Repertoire_SousRepertoires()
Dim Dossier As String
Dim Cible As String
Dossier = "C:\Documents and Settings\michel\dossier\general\excel"
Cible = InputBox("Saisir le nom ou une partie du fichier à retrouver ", "Recherche Fichier")
If Cible = "" Then Exit Sub
ListFilesInFolder Dossier, Cible, True
End Sub
Sub ListFilesInFolder(SourceFolderName As String, motCible, IncludeSubfolders As Boolean)
' adapté de Ole P Erlandsen
'necessite d'aviter la reference Microsoft Scripting RunTime
Dim Fso As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder
Dim SubFolder As Scripting.Folder
Dim FileItem As Scripting.File
Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(SourceFolderName)
For Each FileItem In SourceFolder.Files
If InStr(1, FileItem.Name, motCible, vbTextCompare) > 0 And Right(FileItem.Name, 4) = ".xls" Then
MsgBox "Fichier trouvé : " & vbLf & FileItem.Name, , _
"Recherche des classeurs contenant le mot " & motCible
Workbooks.Open SourceFolder.Path & "\" & FileItem.Name
End If
Next FileItem
If IncludeSubfolders Then 'recherche dans les sous repertoires
For Each SubFolder In SourceFolder.subfolders
ListFilesInFolder SubFolder.Path, motCible, True
Next SubFolder
End If
End Sub
bon week end
MichelXld