XL 2013 survol de la souris

  • Initiateur de la discussion Initiateur de la discussion gena
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gena

XLDnaute Occasionnel
bonjour le forum
je tente un nouveaux essaie mais cela fonctionne a un quart
je recherche comment changer la couleur des boutons en feuille 1 aux survol de la souris de gris passé aux vert ou autre couleur car je voudrais pas devoir copier 10 fois le même code pour chaque boutons
pour l'userform ok cela fonctionne très bien j'ai trouvé un code de grand maitre BOISGONTIER
comme exemple dans la feuille 2
pouvez vous m'aidé svp cela me rendrais service
avec tout ma gratitude
 

Pièces jointes

Bonjour Gena, Danielco, Job,
Ce n'est pas bien de ne pas lire Le Grand Maître jusqu'au bout ! 🙂

( Bulle au survol d'une forme : http://boisgontierjacques.free.fr/pages_site/evenements.htm#MouseMove )

En utilisant des formes pour déclencher vos macros, ça marche :
20200904_174927.gif
 

Pièces jointes

Re Bonsoir tout le monde,
En PJ un essai avec 5 boutons.
Je suis passer par des formes car je les trouve plus esthétiques.
A chaque bouton sont associées ces deux macros :

VB:
Private Sub Label4_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  d = 3
  If X < d Or X > Label4.Width - d Or Y < d Or Y > Label4.Height - d Then
     ActiveSheet.Shapes("Rect1").Fill.ForeColor.RGB = RGB(0, 255, 0)
  Else
     ActiveSheet.Shapes("Rect1").Fill.ForeColor.RGB = RGB(255, 0, 0)
   End If
End Sub

'Macro quand clic sur le bouton
Private Sub Label4_Click()
    ActiveSheet.Shapes("Rect1").Fill.ForeColor.RGB = RGB(0, 255, 0)
    MsgBox "Appui sur Bouton 1"
End Sub
 

Pièces jointes

ben il n'y en a pas because c'est le mouvement d'un autre élément qui doit déclencher le retour alors quand tu passe sur un autre c'est possible mais quand tu es sur la feuille ben c'est walouh
peut etre une rechap avec un timer mais c'est très BOF
en général ça se passe mieux dans un userform
la solution serait de mettre tes 10 bouton sur un label transparent
le move de ce label remettrais le dernier passé en vert en rouge
de ce fait tu dégage cette méthode du x et y qui est bidon


donc dans le thisworkbook
on reprends le code et on ajoute le label qui nous sert de fond derrière les boutons
dans chaque instance de la classe pour les boutons

VB:
Option Explicit
Dim CB() As New Classe1

Private Sub Workbook_Open()
Dim o As OLEObject, n%
For Each o In Feuil1.OLEObjects
    If TypeName(o.Object) = "CommandButton" Then
        ReDim Preserve CB(n)
        Set CB(n).CB = o.Object
        Set CB(n).lab = Feuil1.OLEObjects("Label1").Object
        n = n + 1
    End If
Next

End Sub
la classe
VB:
Option Explicit
Public WithEvents CB As MSForms.CommandButton
Public WithEvents lab As MSForms.Label
Public old As Object
Private Sub CB_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    CB.BackColor = vbgreen
    Set old = CB
End Sub

Private Sub Lab_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If Not old Is Nothing Then old.BackColor = vbRed
End Sub
démonstration
demo5.gif


en fonctionnement
demo6.gif
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour