Private Sub Worksheet_Change(ByVal Target As Range)
Dim NomPic As String
On Error Resume Next
Do: Me.Shapes(1).Delete: Loop Until Err
Err.Clear
NomPic = "Picture " & Me.[B4].Value & "1"
Feuil2.Shapes(NomPic).Copy
If Err Then MsgBox NomPic & vbLf & Err.Description: Exit Sub
Me.Paste
With Me.Shapes(Me.Shapes.Count)
.Top = Me.[C4].Top + (Me.[C4:C5].Height - .Height) / 2
.Left = Me.[C4].Left + (Me.[C4].Width - .Width) / 2
End With
End Sub