Public PdfFile
Sub test()
If ScanFolder("D:\....\.....", "*.pdf", , True) > 0 Then ' Dossier,Fichier,,avec les sous-dossier
[B8].Resize(PdfFile.Count) = WorksheetFunction.Transpose(PdfFile.Items)
[C8].Resize(PdfFile.Count) = WorksheetFunction.Transpose(PdfFile.keys)
Else
MsgBox "Dossier ou fichier non trouvé"
End If
End Sub
Function ScanFolder(Dossier, SearchFor, Optional Vider As Boolean = True, Optional SubDir As Boolean = False) As Long
Dim Items As Object
If Right(Dossier, 1) <> "\" Then Dossier = Dossier & "\"
If Vider Then Set PdfFile = CreateObject("Scripting.Dictionary")
' Récupération des fichiers
On Error GoTo Exit_Sub
Set Items = CreateObject("Shell.Application").Namespace(Dossier).Items
Items.Filter 64, SearchFor
For Each File In Items
PdfFile.Add Dossier & File, File
Next
If SubDir Then
' scan récursif des sous-dossiers
Set Items = CreateObject("Shell.Application").Namespace(Dossier).Items
Items.Filter 32, "*"
For Each sDossier In Items
' Attention, les fichiers compressés sont considérés comme des dossiers
If Not sDossier.Type Like "*compress*" Then ScanFolder Dossier & sDossier, SearchFor, False
Next
End If
Exit_Sub:
ScanFolder = PdfFile.Count
End Function