Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, PicName As String
Application.ScreenUpdating = False
On Error Resume Next
If Not Intersect([D5], Target) Is Nothing Then
Set Rng = Sheet1.Range(Sheet1.[B1], Sheet1.[B65536].End(xlUp))
PicName = Rng.Resize(, 1).Find(Target, LookAt:=xlWhole).Offset(, 2)
ActiveSheet.Shapes("Pic").Delete
With ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & PicName)
.Name = "Pic"
.Left = [C9:D9].Left: .Top = [C9:D9].Top
.Width = [C9:D9].Width: .Height = [C9:D9].Height
End With
End If
End Sub