Affiché photo si la cellule est sélectionnée

Bonjour le forum,

Sur colonne A j'ai un ensemble des cellules A1, A2, A3... portant des noms des sites touristiques.

J'aimerai bien pouvoir affiché la photo de chaque site une fois je sélectionne son nom, voir la cellule portant son nom.

Dans ce cas me demande où stocké les photo?

Crdt

Bonjour,

A mettre dans le module de la feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Image As Shape
    Dim Chemin As String

    On Error Resume Next
    ActiveSheet.Shapes("MonImage").Delete
    On Error GoTo 0

    Chemin = ThisWorkbook.Path & "\" & Target.Value & ".jpg"

    If Dir(Chemin) = "" Then Exit Sub

    Set Image = ActiveSheet.Shapes.AddPicture(Chemin, True, False, 0, 0, 100, 100)
    Image.Name = "MonImage"

End Sub

Bonjour Theze,

je ne sais comment faire fonctionner la macro et l’intégrer.

Sinon comment l’exécuter?

Voir fichier svp

15photo.xlsx (9.96 Ko)

Alt+F11 puis tu double-cliques dans la petite fenêtre en haut à gauche sur "Feuil1 (Feuil2)" et dans la zone d'édition qui vient d'apparaître, tu colles le code. Tu retourne dans Excel et tu cliques dans une de tes cellules mais il faut que les images soit sur le bureau avec le nom qui correspond :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Image As Shape
    Dim Chemin As String

    Chemin = Environ("USERPROFILE") & "\Desktop\" & Target.Value & ".jpg"

    If Dir(Chemin) = "" Then Exit Sub

    Set Image = ActiveSheet.Shapes.AddPicture(Chemin, True, False, Target.Left, Target.Top, Target.Width, Target.Height)
    Image.Name = Target.Value

End Sub

Theze,

Ca marche trés bien là, merci beaucoup.

Mais je me demande si je peut etre plus exigant en voulant que la photo ne s'affiche pas dans la cellule, mais a chaque clique sur son nom elle s'ouvre comme fenetre avec une case "fermé". Possible? Es ce cela sera une userforme?

Bonjour,

Tu as aussi la possibilité d'utiliser un contrôle Image sur ta feuille. Onglet "Développeur" --> zone "Contrôles" --> bouton "Insérer" choisir dans la zone "Controles ActiveX" le contrôle Image et trace-le sur ta feuille à l'endroit voulu.

Colles le code ci-dessous à la place de celui que je t'ai donné précédemment. Si tu sélectionnes une cellule dans la colonne A ayant le nom d'une de tes photos, elle sera affichée dans le contrôle Image mais si tu sélectionnes une cellule ailleurs que dans la colonne A, le contrôle Image est déchargé et caché :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Chemin As String

    'si la cellule sélectionnée n'est pas dans la colonne A ou si la cellule est vide , cache le contrôle Image
    'supprime la photo et fin de procédure
    If Target.Column > 1 Or Target.Value = "" Then

        Image1.Visible = False
        Image1.Picture = LoadPicture("")
        Exit Sub

    End If

    Chemin = Environ("USERPROFILE") & "\Desktop\" & Target.Value & ".jpg"

    'contrôle que le fichier existe bien dans le dossier indiqué
    If Dir(Chemin) = "" Then Exit Sub

    'affiche le contrôle Image, la photo est adaptée au contrôle et chargée
    Image1.Visible = True
    Image1.PictureSizeMode = fmPictureSizeModeStretch

    Image1.Picture = LoadPicture(Chemin)

End Sub

Bonjour le forum, Merci Theze,

Etant débutant en macro j'arrive pas à bien exécuter la macro de THEZE,

En pièce jointe mon fichier avec une photo test que je veux qu'elle s'affiche une fois sélectionner la cellule A1 qui porte son nom.

Crdt

12photo.xlsx (55.10 Ko)

Je reviens pour dire que ça marche à merveille.

merci Theze

Bonjour,

Bon et bien c'est parfait , content de t'avoir aidé

Rechercher des sujets similaires à "affiche photo selectionnee"