Bonjour,
A tester :
Sub test()
Dim chemin As String, Fichier As String
Dim nomF As String, ok As Boolean
Dim wb As Workbook
Set wb = ThisWorkbook
chemin = wb.Path + "\" ' adapter
nomF = InputBox("Saisir une partie du nom du fichier", "Ouvrir fichier")
nomF = LCase(Replace(nomF, " ", ""))
Fichier = Dir(chemin & "*.xl*") ' 1er fichier
Do While (Len(Fichier) > 0)
If Fichier <> ThisWorkbook.Name Then
If InStr(LCase(Replace(Fichier, " ", "")), nomF) Then
If MsgBox("Ouvrir " & Fichier, vbYesNo + vbQuestion, "Nom correct ?") = vbYes Then
ok = True
Exit Do
End If
End If
End If
Fichier = Dir() ' fichier suivant
Loop
If ok Then
Set wb = Workbooks.Open(chemin & Fichier)
Else
MsgBox "Fichier non trouvé"
End If
End Sub
Saisir une partie du nom avec ou sans espace, ils seront supprimés.
Si un nom correspond il est proposé. Si le fichier est refusé le balayage continue.
Par défaut le répertoire de recherche est celui du fichier avec la macro, adapter.
eric