Option Explicit
Sub rech()
Dim Plage As Range, suite As Range, Valeur, debut As String
If ActiveCell.Value = "" Or Selection.Cells.Count > 1 Then
MsgBox ("Il n'y a pas de valeur à chercher")
Exit Sub
End If
Valeur = Selection.Value
With ActiveSheet.Range("A1:G10")
Set suite = .Find(Valeur, , xlValues, xlWhole)
debut = suite.Address
Set Plage = Selection
Do
If Not suite Is Nothing Then Set Plage = Application.Union(Plage, suite)
Set suite = .FindNext(suite)
Loop Until suite Is Nothing Or suite.Address = debut
End With
Plage.Select
End Sub