Sub Test()
Dim PlageDonnee As Range
Dim PlageTable As Range
Dim CelDonnee As Range
Dim CelTable As Range
Dim Adr As String
'plage où sont effectuées les modifs
With Worksheets("Données")
Set PlageDonnee = .Range(.Cells(2, 4), .Cells(.Rows.Count, 4).End(xlUp))
End With
'plage des valeurs de modification
With Worksheets("Table")
Set PlageTable = .Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
'recherche et modifs
For Each CelTable In PlageTable
Set CelDonnee = PlageDonnee.Find(CelTable.Value, , xlValues, xlWhole)
If Not CelDonnee Is Nothing Then
Adr = CelDonnee.Address
Do
CelDonnee.Offset(, 1).Value = CelTable.Offset(, 1).Value
Set CelDonnee = PlageDonnee.FindNext(CelDonnee)
Loop While Adr <> CelDonnee.Address
End If
Next CelTable
End Sub