Sub Affiche_Image()
Dim Ws As Worksheet ' Sert à manipuler plus facilement l'objet feuille
Dim Image As String ' Contiendra le nom de l'image
Dim Lg As Long ' Numéro de la dernière ligne colonne B
Set Ws = Sheets("Feuil1") ' Nom de la feuille
Application.ScreenUpdating = False ' Interdit le raffraîchissement d'écran
Efface_Images
With Ws
For Lg = 1 To .Range("B65536").End(xlUp).Row ' Parcourt de toute la colonne B
Image = ThisWorkbook.Path & "\PHOTOS\" & .Cells(Lg, "B") ' Répertoire à actualiser
On Error Resume Next ' On s'affranchit des erreurs
With .Pictures.Insert(Image).ShapeRange ' On insère l'image dont le nom est en colonne B
.LockAspectRatio = msoFalse ' On peut la redimmensionner comme on veut
.Left = Ws.Cells(Lg, "C").Left ' Position gauche
.Top = Ws.Cells(Lg, "C").Top ' Position Haut
.Width = Ws.Cells(Lg, "C").Width ' Largeur
.Height = Ws.Cells(Lg, "C").Height ' hauteur
End With
If Err.Number > 0 Then ' Si une erreur (image non présente)
MsgBox .Cells(Lg, "B") & vbCr & "Image inexistante" ' On le signale
End If
Next Lg
End With
End Sub