Option Explicit
Sub test()
Dim s As String, x As Range, n As Name, p As String
s = InputBox("Valeur ou plage nommée recherchée...")
If s = "" Then Exit Sub
On Error Resume Next
Set n = Names(s)
On Error GoTo 0
If Not n Is Nothing Then Application.Goto n.RefersToRange, True: Exit Sub
With Columns(2)
Set x = .Find(s, , xlValues, xlPart, , , False)
If Not x Is Nothing Then
x = x.Address
Do
Set x = .FindNext(x)
For Each n In Names
If Not Intersect(x, n.RefersToRange) Is Nothing Then _
Application.Goto n.RefersToRange, True: If MsgBox("celle-ci ?", vbYesNo) = vbYes Then Exit Sub
Next n
Loop While x.Address <> p
End If
End With
End Sub