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é