Désolé, BAROUTE78, je n'ai pas compris le principe que tu proposais, donc je me suis orienté vers une macro. Avec l’aide de mon ami GPT , j’ai réussi à lui faire faire ce que je voulais.
La seule chose que je n’ai pas réussi à lui faire comprendre, c’est que si, dans un dossier, il n’y a pas le fichier .pdf recherché, elle mette quand même le nom de ce dossier, mais laisse la ligne vide à la place du nom du PDF.
Encore merci à vous deux pour votre travail. Bonne après-midi.
Sub RechercherPDF()
Dim fso As Object
Dim dossier As Object
Dim sousDossier As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder("C:\Users\XXX\XX\XXX\ABCD")
For Each sousDossier In dossier.SubFolders
' Vérifie si le premier caractère n'est pas un chiffre
If Not IsNumeric(Left(sousDossier.Name, 1)) Then
ListerPDF sousDossier
End If
Next sousDossier
End Sub
Sub ListerPDF(dossier As Object)
Dim fichier As Object
Dim sousDossier As Object
Dim ligne As Long
ligne = Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each fichier In dossier.Files
If LCase(Right(fichier.Name, 4)) = ".pdf" _
And Left(fichier.Name, 8) = "Décision" Then
Cells(ligne, 1).Value = dossier.Name
Cells(ligne, 2).Value = fichier.Name
ligne = ligne + 1
End If
Next fichier
' Parcours récursif des sous-dossiers ne commençant pas par un chiffre
For Each sousDossier In dossier.SubFolders
If Not IsNumeric(Left(sousDossier.Name, 1)) Then
ListerPDF sousDossier
End If
Next sousDossier
End Sub