Lister les fichiers PDF dans un répertoire renseigné par boite de dialogue
Bonjour à tous,
J’aimerai récupérer tous les fichiers *.pdf dans plusieurs répertoires (et sous-répertoires) en VBA.
Idéalement, ça me demanderait le chemin au départ sachant que je ne suis pas le seul utlisateur.
À partir de la cellule A3 (y’a des têtes de colonne avant).
Et ensuite, sur chaque colonne, je pourrais aller afficher des informations via les FSO (Fileitem.parentfolder.,name et ainsi de suite…. )
Avez-vous quelque chose qui y ressemblerai ?
Merci,
Bonjour Seb78 et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum
- Quelques fonctionnalités du forum à connaître
Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- de citer une phrase (" ")
- ou de clôturer un fil lorsque vous avez terminé (V)
Concernant votre demande, peut-être regarder le code de cette application
https://www.excel-pratique.com/fr/telechargements/outils-de-gestion/gestionnaire-pdf-excel-no239
Merci pour votre participation
Cordialement
Désolé pour l'absence de présentation, c'est corrigé... J'avais passé la journée sur un truc où je ne pipais rien... La solution de facilité et crac !
Concernant le lien, je pense que je dois y retrouver des petits... Merci aussi !
Du coup, le fichier est TRÈS complet, voir beaucoup trop et surtout, tout est imbriqué.... Je n'ai pas le talent pour retrouver ce dont j'ai besoin.
En fait, j'ai déjà ce code :
Sub ListeFichiers(Repertoire As String)
'Nécessite d'activer la référence "Microsoft Scripting RunTime"
'Dans l'éditeur de macros (Alt+F11):
'Menu Outils
'Références
'Cochez la ligne "Microsoft Scripting RunTime".
'Cliquez sur le bouton OK pour valider.
Application.ScreenUpdating = False
Dim FSO As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder
Dim SubFolder As Scripting.Folder
Dim FileItem As Scripting.File
Dim i As Long
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder(Repertoire)
'Récupère le numéro de la dernière ligne vide dans la colonne A.
i = Range("A65536").End(xlUp).Row + 1
'Boucle sur tous les fichiers du répertoire
For Each FileItem In SourceFolder.Files
'Inscrit le nom du répertoire
Cells(i, 1) = FileItem.ParentFolder.Name
'Inscrit le nom du fichier dans la cellule
i = i + 1
Next FileItem
For Each SubFolder In SourceFolder.SubFolders
ListeFichiers SubFolder.Path
Next SubFolder
'ActiveSheet.Range("$A$2:$L$440").AutoFilter Field:=8, Criteria1:="Nok"
End SubEt j'aurais aimé la même chose, mais pour du PDF... Voilà, vous savez tout (sur Office 2013)
Merci à ceux qui pourront m'aider et aussi à ceux qui auront essayé !
Seb78
Salut,
Il te faut juste vérifier le type de fichier :
Pour cela tu testes le type de document dans la boucle.
'...
'...
'Boucle sur tous les fichiers du répertoire
For Each FileItem In SourceFolder.Files
'Inscrit le nom du répertoire
If FileItem.Type = "Document Adobe Acrobat" Then ' //Vérifie le type de fichier
Cells(i, 1) = FileItem.ParentFolder.Name
'Inscrit le nom du fichier dans la cellule
i = i + 1
End If
Next FileItem
'...
'...Bonjour Jean-Paul,
Merci beaucoup ! ça marche nickel (j'ai juste remplacé "Document Adobe Acrobat" par "Adobe Acrobat Document"), mon excel parle anglais a priori) !
Merci encore et même si ça te paraît simple, c'était loin d'être évident pour moi !
Seb78