Comment afficher une image au survol d'une cellule
Résolu
Aschille
Messages postés
32
Statut
Membre
-
Aschille Messages postés 32 Statut Membre -
Aschille Messages postés 32 Statut Membre -
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.
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.
6 réponses
-
Bonsoir
un exemple
https://www.cjoint.com/?3EluoZfVmWZ
nota: il faut "dézipper" la pièce jointe et non "ouvrir" le zip
Michel -
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 -
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 ? -
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"
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 ? -
Impeccable ! Rien à rajouter. Merci énormément à vous deux ^^