XL 2016 Infobulles au passage de la souris

halecs93

XLDnaute Impliqué
Bonjour,

J'ai tenté de m'inspirer de deux fils sur le forum, mais cela n'a pas fonctionné.

Sur la feuille de calcul j'ai des images associées à des macros. Je souhaitais faire apparaitre des infobulles lorsque la souris survole une image.

Soit j'arrive à le faire, mais la macro ne se lance pas, soit la macro se lance mais je n'ai pas d'infobulle....

Je laisse un fichier exemple.

Un grand merci pour vos réponses.
 

Pièces jointes

  • COMMANDE xld.xlsm
    139.7 KB · Affichages: 19

jurassic pork

XLDnaute Occasionnel
Hello,
une nouvelle piste en utilisant l'activeX InkPicture (normalement présent dans les versions modernes de Windows et qui a l'avantage d'avoir les événements MouseEnter et MouseLeave. L'inconvénient c'est qu'il ne charge pas apparemment les images png (mais il peut charger des images Gif : convertir png en gif avant utilisation). Il faut désactiver l'encre pour éviter de véroler l'image et mettre l'icône de souris à la main.
J'ai repris le code de patricktoulon en l'adaptant à ce composant (plus besoin de masque) :
VB:
Private Sub InkPicture1_Click(): Ajouter: End Sub
Private Sub InkPicture2_Click(): Supprimer: End Sub

Private Sub InkPicture1_MouseEnter()
   'Debug.Print "MouseEnter"
   over InkPicture1, "Ajouter une ligne"
End Sub

Private Sub InkPicture1_MouseLeave()
   'Debug.Print "MouseLeave"
   ActiveSheet.DrawingObjects("comm").Visible = False
End Sub

Private Sub InkPicture2_MouseEnter()
     over InkPicture2, "Supprimer une ligne"
End Sub


Private Sub InkPicture2_MouseLeave()
      ActiveSheet.DrawingObjects("comm").Visible = False
End Sub

Sub over(image, msg)
        With ActiveSheet.DrawingObjects("comm")
            .Text = msg
            .Visible = True
            .Left = image.Left + (image.Width / 2)
            .Top = image.Top - 25
        End With

End Sub

Et voilà ce que cela donne :
InkPictureProps.png
InkPicture.gif


Ami calmant, J.P
 

patricktoulon

XLDnaute Barbatruc
re
@halecs93 le mien avec les activx tu l'a déjà

@jurassic pork
loader un png sur un activX
il y a une astuce simple avec la librairie WIA
VB:
Sub PutPngOnPictureDisp()
    Dim img As Object, Fichier As String
    Fichier = "C:\Users\patricktoulon\Desktop\icofree.png"
    Set img = CreateObject("Wia.ImageFile")
    img.LoadFile Fichier
    'et on met les datas de l'image WIA dans le ipicturedisp du control image
    Set Image1.Picture = img.ARGBData.Picture(img.Width, img.Height)
    'et on peut même la sauver en jpeg
    SavePicture Image1.Picture, "C:\Users\patricktoulon\Desktop\icofree.jpg" 'on obtient un vrai jpg
End Sub
 

jurassic pork

XLDnaute Occasionnel
En pièce jointe un classeur avec les 7 boutons en activeX InkPicture.
Il y avait un bug : il fallait aussi faire disparaître l'infoBulle quand on cliquait sur le bouton sinon par exemple on voyait l'infobulle dans la génération PDF.
On pourrait aussi un peu simplifé le code en utilisant un module de classe pour les activeX.
 

Pièces jointes

  • COMMANDE MATERIEL - modele 2024-2025 JP V2.xlsm
    167.1 KB · Affichages: 5

jcf6464

XLDnaute Impliqué
Bonsoir à vous tous et le forum,

je vous suis depuis le début intéressant votre travail,

Mais là le classeur ne fonctionne pas je suis en 365 et il y un bug à l'ouverture,

bonne continuation jcf
 

Pièces jointes

  • Capture d’écran 2024-07-19 184422.jpg
    Capture d’écran 2024-07-19 184422.jpg
    42.2 KB · Affichages: 7

jurassic pork

XLDnaute Occasionnel
:oops: Désolé effectivement j'avais oublié de décocher cette référence (qui n'est pas utilisé dans le fichier) avant d'enregistrer le classeur. Normalement j'ai corrigé la chose et le classeur de mon précédent message a été mis à jour maintenant et doit être bon. D'autre part je vois dans ton animation patricktoulon que tu n'as pas tout le texte dans les infobulles (moi j'ai tout le texte). Si vous avez aussi ce cas il faut diminuer la taille de la police de l'infobulle ou agrandir l'infobulle.
 

Discussions similaires

Réponses
9
Affichages
236

Statistiques des forums

Discussions
314 719
Messages
2 112 178
Membres
111 452
dernier inscrit
christine64