Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Picture, Cbl As Range
If Target.Row = 4 And Target.Count = 1 Then
Set Cbl = Target.Offset(2, -1).Resize(, 3)
'-- suppression
For Each Sh In ActiveSheet.Pictures '.Shapes
If Sh.TopLeftCell.Column = Cbl.Column Then Sh.Delete: Exit For
Next Sh
'--
If Target <> "" Then
Sheets("Data").Shapes(Target).Copy
ActiveSheet.Paste
Set Sh = Selection
Sh.Left = Cbl.Left + (Cbl.Width - Sh.Width) / 2
Sh.Top = Cbl.Top + (Cbl.Height - Sh.Height) / 2
Target.Select: End If: End If
End Sub