Comment afficher une image au survol d'une cellule

Résolu/Fermé
Aschille Messages postés 31 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 11 mai 2013 - 11 mai 2013 à 20:05
Aschille Messages postés 31 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 11 mai 2013 - 11 mai 2013 à 23:27
Bonjour,

J'ai cherché un peu partout sur le net et il semble qu'il existait une fonction dans les versions antérieures d'Excel une façon simple d'y remédier (menu contextuel, format de commentaire). Sauf que là, le seul onglet qui m'est proposé dans cette boite de dialogue est l'onglet police, ni texture ni image à insérer comme un fond.

Je pense qu'il est toujours possible de passer par VBA pour arriver à cette fin mais, n'ayant aucune notion en programmation, je sollicite votre aide qui est plus que bienvenue.

Cordialement.

A voir également:

6 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 11/05/2013 à 20:16
Bonsoir

un exemple
https://www.cjoint.com/?3EluoZfVmWZ

nota: il faut "dézipper" la pièce jointe et non "ouvrir" le zip

Michel
2
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
11 mai 2013 à 23:19
Re,

Si tes images sont carrées, tu simplifier le code de Michel comme suit :

Sub creer_image_survol()
Dim chemin As String, Col As Byte, Lig As Byte, Fin As Integer, Cptr As Integer
Dim design As String, image As String
Dim pict As IPictureDisp

chemin = ThisWorkbook.Path & "\"
Col = Range("start").Column
Lig = Range("start").Row
Fin = Range("start").End(xlDown).Row
For Cptr = Lig To Fin
     image = Cells(Cptr, Col)
     design = chemin & image
     'prend en compte le format de la photo
     If Dir(design & ".png") <> "" Then image = image & ".png"
     If Dir(design & ".jpg") <> "" Then image = image & ".jpg"
     If Dir(design & ".jpeg") <> "" Then image = image & ".jpeg"
     If Dir(design & ".gif") <> "" Then image = c & ".gif"
     Set pict = LoadPicture(chemin & image)

     'construit et remplit le commentaire
      With Cells(Cptr, Col)
          .ClearComments
          .AddComment
          With .Comment.Shape
              .Fill.UserPicture chemin & image
              .LockAspectRatio = msoFalse
              .Height = 300
              .Width = 300
          End With
          .Comment.Visible = False
      End With
Next

End Sub

La dimension des images est déterminée par :
.Height = 300
.Width = 300
--
Cordialement
Patrice
1
Aschille Messages postés 31 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 11 mai 2013
11 mai 2013 à 20:48
Merci pour la rapidité de ta réponse Michel. En voyant le résultat dans ton exemple je ne peux qu'être optimiste pour la résolution de mon problème.

J'ai copié tes lignes de codes dans mon classeur, attribué un bouton à l'exécution de celles ci, et mis une image avec le même nom que le contenu en texte d'une des cellules. Néanmoins, le problème persiste.

Le débogage me renvoie à cette ligne de code :

Col = Range("start").Column

Les images dans mon cas par contre correspondent à la colonne A.

Une idée ?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
11 mai 2013 à 22:36
Comme c'est indiqué sur la Feuille 1 du fichier de Michel, la première cellule qui doit recevoir la première image doit être nommée "start"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aschille Messages postés 31 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 11 mai 2013
11 mai 2013 à 23:01
En effet, j'avais omis ce détail. Voilà que ça marche.

Un dernier détail si je puis me permettre. Les images que je veux mettre sont d'une taille de 64x64 pixels. Y'a t'il une façon pour les afficher dans cette taille car là ils ont tous tendance à s'agrandir et à s'étirer à l'horizontal ?
0
Aschille Messages postés 31 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 11 mai 2013
11 mai 2013 à 23:27
Impeccable ! Rien à rajouter. Merci énormément à vous deux ^^
0