XL 2019 Inserer des photos temporairement

Vins74000

XLDnaute Nouveau
Bonjour a tous,

je cherches une solution pour afficher des photos dans excel, qu'il irait chercher dans un dossier selon le résultat d'une formule.
par exemple, si le resultat de la formule est DB12, la photo nommée DB12 dans un dossier dedié, apparait, si le resultat de la formule change, la photo change

Est ce possible ? et si oui comment ?

Un grand merci par avance pour vos réponses
 

job75

XLDnaute Barbatruc
Bonjour Vins74000,

Téléchargez les fichiers zippés joint dans le même dossier.

Ouvrez le fichier .xlsm et voyez la macro dans le code de la feuille :
VB:
Private Sub Worksheet_Calculate()
Dim chemin$
chemin = IIf([C2] = "", "", ThisWorkbook.Path & "\" & [C2])
Image1.Picture = LoadPicture(chemin)
Image1.PictureSizeMode = fmPictureSizeModeZoom
End Sub
Elle se déclenche quand la formule en C2 est recalculée.

A+
 

Pièces jointes

  • Photo.zip
    55.8 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bonjour Vins74000,

Une autre solution dans le fichier (2) avec insertion d'une Shape dans la plage B4:C9 :
VB:
Private Sub Worksheet_Calculate()
Dim chemin$, a As Range, im As Object
chemin = IIf([C2] = "", "", ThisWorkbook.Path & "\" & [C2])
Set a = [B4].MergeArea
Application.ScreenUpdating = False
On Error Resume Next
Me.Shapes("MonImage").Delete 'RAZ
Set im = Me.Pictures.Insert(chemin)
im.Name = "MonImage"
With im.ShapeRange
    .LockAspectRatio = True 'pour conserver les proportions de l'image
    .Top = a.Top
    .Left = a.Left
    If .Height / .Width > a.Height / a.Width Then
        .Height = a.Height
    Else
        .Width = a.Width
    End If
End With
End Sub
A+
 

Pièces jointes

  • Photo.zip
    71.8 KB · Affichages: 4

Discussions similaires

Réponses
12
Affichages
724

Statistiques des forums

Discussions
314 770
Messages
2 112 758
Membres
111 652
dernier inscrit
Joel Bakuka