Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, PicName As String, Clls As Range
On Error Resume Next
If Target.Address - "$A$1" Then
Application.ScreenUpdating = False
For Each Clls In Sheet4.[A2:A600].SpecialCells(3)
Set Rng = Sheet2.Range("A2").CurrentRegion
PicName = ThisWorkbook.Path & "\" & Rng.Resize(, 1).Find(Clls.Value).Offset(, 4)
Sheet4.Shapes(Clls.Offset(6, 1).Address).Delete
With Sheet4.Pictures.Insert(PicName)
.ShapeRange.LockAspectRatio = msoFalse
.Name = Clls.Offset(6, 1).Address
.Left = Clls.Offset(6, 1).Left: .Top = Clls.Offset(6, 1).Top
.Width = Clls.Offset(6, 1).MergeArea.Width: .Height = Clls.Offset(6, 1).MergeArea.Height
End With
Next
Application.ScreenUpdating = True
End If
End Sub