Option Explicit
Sub Inserer_une_image()
' Insère une image dans une cellule
'
Dim shr As Excel.ShapeRange
Dim dst As Range
Dim repImages$
Dim nomImage$
repImages = ThisWorkbook.Path & "\" ' Dossier contenant les images (à adapter)
nomImage = "MonImage.jpg" ' Nom de l'image.jpg (à adapter)
Set dst = Worksheets("Feuil1").Range("A2") ' Cellule destination (à adapter)
' Vérifier l'existence de l'image ...
If Dir(repImages & nomImage) <> "" Then
' ... si oui :
' - inserer l'image sur la feuille et la nommer
Set shr = dst.Parent.Pictures.Insert(repImages & nomImage).ShapeRange
shr.Name = Mid(nomImage, 1, InStrRev(nomImage, ".") - 1)
' - positionner l'image sur la cellule destination
shr.Left = dst.Left
shr.Top = dst.Top
' - adapter l'image à la taille de la cellule
shr.LockAspectRatio = msoFalse
shr.Width = dst.Width
shr.Height = dst.Height
Else
' ... sinon : message d'information
MsgBox "L'image " & nomImage & " n'existe pas dans le dossier :" & vbCrLf & _
repImages, vbCritical
End If
End Sub