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