Bonsoir à tous les 2 (on se retrouve^^),
Voici une proposition (pour l'instant non fonctionnelle) issue de l'adaptation d'un code que j'ai fait assez récemment. Sur le sujet en question, le code est censé inspecter tous les fichiers de tous les sous-dossiers de tous les dossiers d'un dossier parent. Ici, on a un niveau en moins...
Je pense qu'au-delà, le recours au fso et à une fonction récursive s'impose.
https://forum.excel-pratique.com/excel/recherche-de-fichier-dans-plusieurs-dossiers-152171
Sub test()
dim strPath$
strPath = "C:\...\2021\" '<<<<< ADAPTER
'TABLEAU CONTENANT LES DOSSIERS DE 2021
arrFolders = ListeDossiers(strPath)
'POUR CHAQUE SOUS-DOSSIER DE 2021, ON PARCOURT TOUS LES FICHIERS
For i = LBound(arrFolders) To UBound(arrFolders)
strCurrentFile = Dir(arrFolders(i) & "*.xls*")
While strCurrentFile <> ""
if strCurrentFile like "Rapport*" then
'----------COEUR DU CODE A DEFINIR
set wb = workbooks.open(arrFolders(i) & strCurrentFile)
with wb
'code a executer dessus '<<<<<<<<
.close true
end with
'--------------------------------
end if
strCurrentFile = Dir
Wend
Next i
End Sub
'FONCTION PERMETTANT DE RENVOYER UN TABLEAU AVEC TOUS LES SOUS-REPERTOIRES D'UN REPERTOIRE
Function ListeDossiers(strRepertoire$)
Dim strDossier$, n&, temp()
strDossier = Dir(strRepertoire, vbDirectory)
While strDossier <> ""
If Not strDossier Like "*.*" Then
ReDim Preserve temp(n)
temp(n) = strRepertoire & strDossier & "\"
n = n + 1
End If
strDossier = Dir
Wend
ListeDossiers = temp
End Function
Pour le coeur du problème, je pense qu'il faut bien le définir (et donc connaitre les caractéristiques des fichiers avec précision) et partir sur une macro dépendant de paramètres.
Cdlt,