XL 2019 Lier des photos à une cellule

bpautal

XLDnaute Nouveau
Bonjour,
Je fais appel à vous pour une aide sur un fichier Excel. Je voudrais lier une photo à une cellule. Un passage de la souris sur le nom ouvre une photo.
J'ai ça dans un fichier adhérents d'une association dont je suis membre. Mais je n'ai rien trouvé ni dans les macros ni dans le MFC.
Merci d'avance.
Bien cordialement,
B. Pautal
 

Jacky67

XLDnaute Barbatruc
Bonjour Jacky67, Et merci de la réponse. Mais je n'ai que l'onglet "Dégradé" dans "Textures".
Re..
C'est une particularité à ta version xl ????
Chez moi xl 2007 pas de problème
Le classeur joint fonctionne ????

-Insérer un commentaire dans la cellule concernée
-Supprimer le texte éventuellement présent
-Clic droit sur la bordure du commentaire==>format de commentaire
-Dans la section==>Remplissage==>couleur==>choisir>motif et texture
-Dans l'onglet "image"==>sélectionner une image
-Ok
-
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
J'ai oublié une étape...:rolleyes:
-Insérer un commentaire dans la cellule concernée
-Supprimer le texte éventuellement présent
-Clic droit sur la bordure du commentaire==>format de commentaire
-Onglet==>Couleurs et traits
-Dans la section==>Remplissage==>couleur==>choisir>motif et texture
-Dans l'onglet "image"==>sélectionner une image
-Ok

Tu ne dis pas si dans mon classeur cela fonctionne
 

Jacky67

XLDnaute Barbatruc
OK ! C'est bon et ton fichier fonctionne. Mais j'ai 65 photos à insérer alors c'est un peu long mais bon...
En tous cas merci beaucoup pour l'explication.
Cordialement,
B. Pautal
Re..
Une proposition par vba en PJ, sans mettre les photos dans le classeur
-Créer un répertoire nommé "Les photos" avec toutes les photos avec l'extension ".jpg"
-Inscrire les noms dans la colonne A sans l'extension.
-Le répertoire "Les photos" doit être placé dans le même répertoire que ce classeur
-Il est évident que Les noms inscrits en colonne A doivent être identiques aux noms des photos
 

Pièces jointes

  • Photo dans commentaire V2.xlsm
    21.5 KB · Affichages: 20

Dudu2

XLDnaute Barbatruc
Bonjour @bpautal, @Jacky67,
Un passage de la souris sur le nom ouvre une photo.
Alors ça te fait 2 problèmes:
- Le 1er est de lier le nom et la photo: un simple hyperlien à cliquer ne ferait-il pas l'affaire ? C'est simple, efficace et ça ne demande pas de programmation.
- Le 2ème est que pour avoir un évènement de type MouseMove (Mouse Over, la souris passe dessus) , il faut un objet que le gère. Par exemple une TextBox Active X avec le nom dedans et du code VBA pour gérer l'affichage de l'image correspondante (lien toujours à faire) sur un MouseMove.
 

bpautal

XLDnaute Nouveau
Bonjour à Tous,
Je n'ai pas répondu tout de suite pour cause de chimio mais je m'y remet aujourd'hui.
J'ai deux soucis :
1 - Avec le système du commentaire dans la cellule les images sont "pivotées" et j'ai beau les retourner rien n'y fait.
2 - Comment fait-on pour copier le code que m'a donné Jacky67 dans ma propre feuille qui, elle, a déjà les noms ?
Aùicalement,
BP
 

Jacky67

XLDnaute Barbatruc
Bonjour à Tous,

2 - Comment fait-on pour copier le code que m'a donné Jacky67 dans ma propre feuille qui, elle, a déjà les noms ?
Aùicalement,
BP
RE..
-Clic droit sur l'onglet de la feuille contenant les noms en colonne A
-Visualiser le code
-Dans la fenêtre blanche, coller le code
-Revalider les noms sur la feuille
Pour la 1-
 

Pièces jointes

  • 1664619888233.png
    1664619888233.png
    127.1 KB · Affichages: 23

bpautal

XLDnaute Nouveau
Merci de ta réponse Jacky mais ça ne fonctionne pas. Pas de souci c'est forcément moi qui n'y arrive pas. Il est vrai qu'à 76 ans on panique un peu.
J'aurais bien voulu t'envoyer mon fichier et le fichier image mais ça ne passe pas au niveau taille.
Peut^-être une solution ?
A plus,
BP
 

Jouxte

XLDnaute Occasionnel
Bonjour à toutes et tous,
Merci Jacky pour ce code qui m’intéresse.
Peut-on ajouter d'autres formats d'image (.png; .gif; .bmp) et agrandir la fenêtre commentaire.
j'ai essayé comme ça mais au bout de 3 ligne plus rien ne marche.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Or Target.Row = 1 Or Target.Count > 1 Then Exit Sub
    If Target = "" Then Target.ClearComments: Exit Sub:
    Application.ScreenUpdating = False
    With Target
        .ClearComments
        .AddComment
        On Error Resume Next
        .Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\Les photos\" & Target & ".jpg"
        On Error Resume Next
        .Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\Les photos\" & Target & ".png"
        On Error Resume Next
        .Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\Les photos\" & Target & ".gif"
        On Error Resume Next
        .Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\Les photos\" & Target & ".bmp"
       
        If Err <> 0 Then MsgBox .Value & vbLf & "Photo introuvable": .ClearComments
    End With
End Sub

Par avance merci.
 

Jacky67

XLDnaute Barbatruc
Bonjour à toutes et tous,
Merci Jacky pour ce code qui m’intéresse.
Peut-on ajouter d'autres formats d'image (.png; .gif; .bmp) et agrandir la fenêtre commentaire.
j'ai essayé comme ça mais au bout de 3 ligne plus rien ne marche.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Or Target.Row = 1 Or Target.Count > 1 Then Exit Sub
    If Target = "" Then Target.ClearComments: Exit Sub:
    Application.ScreenUpdating = False
    With Target
        .ClearComments
        .AddComment
        On Error Resume Next
        .Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\Les photos\" & Target & ".jpg"
        On Error Resume Next
        .Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\Les photos\" & Target & ".png"
        On Error Resume Next
        .Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\Les photos\" & Target & ".gif"
        On Error Resume Next
        .Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\Les photos\" & Target & ".bmp"
 
        If Err <> 0 Then MsgBox .Value & vbLf & "Photo introuvable": .ClearComments
    End With
End Sub

Par avance merci.
Re..
Essaye comme ceci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c
    If Target.Column <> 1 Or Target.Row = 1 Or Target.Count > 1 Then Exit Sub
    If Target = "" Then Target.ClearComments: Exit Sub:
     With Target
        .ClearComments
        .AddComment
        For Each c In Array(".jpg", ".png", ".gif", ".bmp")
            On Error Resume Next
            .Comment.Shape.Fill.UserPicture ThisWorkbook.Path & "\Les photos\" & Target & c
            .Comment.Shape.Width = 100 'larguer
            .Comment.Shape.Height = 100 ' hauteur
            Application.CutCopyMode = False
            If Err = 0 Then Exit Sub
        Next
        MsgBox .Value & vbLf & "Photo introuvable": .ClearComments
    End With
End Sub
**Bon rétablissement après la séance de chimio
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 603
Messages
2 111 081
Membres
111 035
dernier inscrit
Gharbi