Si tu fais fichier=Dir("chemin\*.pdf"), ta variable fichier contiendra le premier nom de fichier correspondant à ta demande.
Si tu fais ensuite une boucle :
Do While fichier <> ""
' [instructions]
fichier = Dir
Loop
fichier va te renvoyer à chaque fois le nom du fichier suivant correspondant à ta demande, tant qu'il y en a).
Dans les "instructions" tu peux par exemple afficher à chque fois un MsgBox donnant le nom du fichier, avec boutons Oui/Non permettant à l'utilisateur de le retenir ou pas, mais ce n'est pas très pratique.
Tu pourrais donc faire :
Sub ListerFichier()
Dim fichier$, Lfich
fichier = Dir("chemin\*pdf")
Lfich = fichier
Do While fichier <> ""
Lfich = Lfich & ";" & fichier
fichier =Dir
Loop
Lfich = Split(Lfich, ";")
With UserForm1
.ComboBox1.List = WorksheetFunction.Transpose(Lfich)
.Show
End With
End Sub
Tu listes tes noms de fichiers à suite dans ta variable (avec un séparateur) et au sortir de la boucle tu transformes ta chaîne en tableau des noms de fichiers.
Tu affectes cette liste à une ComboBox dans un Userform, que tu ouvres pour faire choisir l'utilisateur...
Il te reste pour ce cas à construire le Userform avec Combo, des boutons et les procédures pour récupérer le choix...
Cordialement.