Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [h1]) Is Nothing Then
Dim Rng As Range, sRng As Range, cRng As Range
Dim MyAdd As String
Set Rng = Sheets("Sheet1").Range("C1:C30")
Set sRng = Rng.Find(Target.Value, , xlFormulas, xlPart)
If Not sRng Is Nothing Then
MyAdd = sRng.Address
Range([I2], [I2].End(xlDown)).ClearContents
Do
If InStr(sRng.Value, Target.Value) = 1 Then
If cRng Is Nothing Then
Set cRng = sRng
Else
Set cRng = Union(cRng, sRng)
End If
End If
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If
If Not cRng Is Nothing Then cRng.Copy Destination:=[I2]
[c65500].End(xlUp).Offset(1).Select
End If
End Sub