bonjour,
je voudrais faire en sorte qu'un bouton dans une feuille excel change de couleur quand la souris passe dessus.
Je récupère sans problème les coordonnées X e Y de la souris. Pour tester régulièrement ces valeurs, je fais appelle à la procédure suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Option Explicit
 
Private Sub CommandButton1_Click()
    CouleurBouton
End Sub
'**************************************
Sub CouleurBouton()
Dim PauseTime, Start, Finish, TotalTime
Dim pos As POINTAPI
 
    PauseTime = 0.01   ' Définit le pas du temps.
    Start = Timer   ' Définit l'heure de début.
 
    'test des valeurs de X et Y
    GetCursorPos pos
    'les coordonnées sont affichées
    Label1.Caption = pos.X
    Label2.Caption = pos.Y
    'puis testées
    If ((pos.X > 881) And (pos.X < 1040)) And ((pos.Y > 540) And (pos.Y < 567)) Then
        CommandButton1.BackColor = 4966415
    Else
        CommandButton1.BackColor = 4990415
    End If
 
    Do While Timer < Start + PauseTime
            DoEvents    ' Donne le contrôle à d'autres
                        ' processus.
    Loop
    'on relance
    CouleurBouton
End Sub
Mon code marche mais au bon de quelques secondes, j'ai le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Erreur d'exécution '28':
Espace pile insuffisant
Avez vous des pistes?
Merci d'avance.