Bonjour Theyoshi,
Je doute que ça puisse fonctionner avec une simple formule.
Il faut une macro évènementielle qui génère la photo à chaque changement en A1 :
private sub worksheet_change(byval target as range)
dim r as range
set r = intersect(target, range("A1"))
if not r is nothing then
sfilename = "U:\DAMA\Dossier des jeunes\Présents\- ID Photo\" & r.value & ".jpg"
with me
if ShapeExists("Photo") then .shapes("Photo").delete
if dir(sfilename) = "" then exit sub
set rDest = .range("D1")
with .shapes.addpicture(sfilename, msofalse, msotrue, rDest.left, rDest.top, -1, -1)
.name = "Photo"
.lockaspectratio = true
.width = rDest.width
end with
end with
end if
end sub
function ShapeExists(sName$, optional ws as worksheet) as boolean
if ws is nothing then set ws = activesheet
on error resume next
ShapeExists = ws.shapes(sName).id
end function
Dans cet exemple, la photo est insérée en D1 en respectant les dimensions de l'image de départ et la largeur de la cellule de destination.
L'image créée sera automatiquement nommée "Photo".
Le code est à coller dans le module de la feuille concernée.
Cdlt,