Afficher une photo selon une valeur

Bonjour,

Il arrive parfois qu'il faille ajouter une photo à une feuille de calcul, afin de compléter un devis, choisir un composant sans risque de se tromper, voire ajouter un QRCode.

Ci-après une fonction qui donnera une image dont le nom sera issu de la cellule appelante :

Option Explicit
Const deltaX = 10 ' horizontal
Const deltaY = 20 ' vertical
Const offsetX = 0
Const offsetY = 0

Function MonImage( _
    ByVal url As String, _
    Optional ByVal largeur As Long = 130, _
    Optional ByVal hauteur As Long = 150, _
    Optional ByVal texte As String = "") As Variant
Dim oImg As Shape, oRng As Range
    Set oRng = Application.Caller.Offset(offsetY, offsetX)
    On Error Resume Next
        Set oImg = oRng.Parent.Shapes(Application.Caller.Address)
        oImg.Delete
    On Error GoTo 0
    If url = "" Then GoTo fin
    On Error GoTo fin
    Set oImg = oRng.Parent.Shapes.AddPicture(url, True, True, oRng.Left + deltaX, oRng.Top + deltaY, largeur, hauteur)
    oImg.Name = Application.Caller.Address
    MonImage = texte
    Exit Function
fin:
    MonImage = "pas d'image"
End Function

Il y a quelques paramètres dans la macro

Const deltaX = 10 ' horizontal
Const deltaY = 20 ' vertical
Const offsetX = 0
Const offsetY = 0

permettant de régler la position de l'image

  • dans une cellule voisine (offsetX et offsetY) si besoin
  • par rapport au coin supérieur gauche de la cellule (deltaX et deltaY)

L'appel se fait via une fonction :

MonImage( url de l'image ; largeur optionnelle ; hauteur optionnelle ; texte optionnel à afficher )

edit : retrait de l'exemple qui comportait des images non libres de droits, désolé

Application ...

capture d ecran 586
33afficheimage.xlsm (206.61 Ko)
Rechercher des sujets similaires à "afficher photo valeur"