Try something like this:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastRow As Long
Dim chgRow As Long
Dim chgToVal As Integer 'some number that was changed TO
Dim chgToKey As String 'apple
Dim i As Integer
If Target.Column = 2 Then
Application.EnableEvents = False 'don't get stuck in a change event loop
chgRow = Target.Row
chgToVal = Target.Value
chgToKey = Target.Offset(0, -1).Text
lastRow = Range("a" & Rows.Count).End(xlUp).Row
For i = 1 To lastRow
If i <> chgRow Then
If Range("a" & i).Text = chgToKey Then
Range("b" & i).Value = chgToVal
End If
Else
'skip it
End If
Next i
End If
Application.EnableEvents = True
End Sub
Your data must be in columns A and B, starting in row 1. Otherwise, change the code accordingly.