Bonjour,
une solution via une macro. vérifie bien l'extension ! j'ai laissé .xlm mais je ne crois pas que ce soit celle que tu souhaites (.xml ou .xlsm ?)
Sub aargh()
Sheets("feuil1").Activate
On Error Resume Next
ActiveSheet.Hyperlinks.Delete 'suppression de tous les hyperliens dans la feuille
On Error GoTo 0
dl = Cells(Rows.Count, 1).End(xlUp).Row ' nombre de fichiers à chercher
Set r = Range("B2:B" & dl) ' plage des fichiers à chercher
rep = "d:\documents" ' répertoire de départ
lfif rep, r ' recherche des fichiers
MsgBox "traitement terminé"
Application.StatusBar = ""
End Sub
Sub lfif(folder, r)
Set fold = CreateObject("Scripting.FileSystemObject").GetFolder(folder)
Application.StatusBar = folder
For Each f In fold.SubFolders
If Right(f, 1) <> "\" Then lfif f & "\", r Else lfif f, r
Next
For Each f In fold.Files 'on prend le nom d'un fichier du répertoire
If InStr(ucase(f), ".XLSM") <> 0 Then ' sélection de l'extension
fname = Mid(f, InStrRev(f, "\") + 1) ' on adapte son nom au format de la liste, suppression du chemin
On Error Resume Next
fname = Left(fname, InStr(fname, ".") - 1) ' suppression de l'extension
On Error GoTo 0
Set re = r.Find(fname, lookat:=xlWhole) 'on cherche le nom dans la liste
If Not re Is Nothing Then 'si trouvé
With ActiveSheet 'on ajoute l'hyperlien
.Hyperlinks.Add Anchor:=re, Address:=f, TextToDisplay:=re.Value & ""
End With
End If
End If
Next
End Sub