Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim o As Object 'déclare la variable o (Onglet)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim ca As String 'déclare la variable ca (Chemin d'Accès)
Dim num As String 'déclare la variable num (NUMéro image)
Dim nom As String 'déclare la variable nom (NOM image)
Set o = Sheets("Foglio1") 'définit l'onglet o
dl = o.Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 2 (=B)
Set pl = o.Range("B3:B" & dl) 'définit la plage pl
If Application.Intersect(Target, pl) Is Nothing Then Exit Sub 'si le double-clic a lieu ailleurs que dans pl, sort de la procédure
Cancel = True 'annule le mode édition lié au double-clic
ca = ThisWorkbook.Path & "\" 'définit le chemin d'accès
num = Split(Target.Value, " ")(0) 'définit le numéro de l'image num
nom = num & ".BMP" 'définit le nom de l'image
'si il y a déjà une image en G5, supprime cette image
If ActiveSheet.Shapes.Count > 0 Then ActiveSheet.Shapes(1).Delete
o.Range("G5").Select 'sélectionne la cellule G5
On Error Resume Next 'gestion des erreurs
o.Pictures.Insert (ca & nom) 'insère l'image (génère une erreur si l'image n'existe pas)
If Err <> 0 Then 'conditionsi une erreur a été générée
Err = 0 'annule l'erreur
MsgBox "Cette Image n'existe pas" 'message
End If 'fin de la condition
End Sub