Bonjour à tous et Bonne année 2016 !

Voilà, j'écris un code VBA sous Excel 2010 ayant pour but d'afficher une "liste" de labels lorsque le curseur de ma souris passe sur une image (cf. première image en pièce jointe). Ce qui me permettrai ensuite de pouvoir cliquer sur l'un des label visible qui me renverrai à une position de mon réseau que je définie à l'aide d'un lien hypertexte. (le but étant d'arriver à reproduire par exemple, lors d'un clique droit de la souris, le volet qui s'affiche avec les différentes possibilités de sélection mais sans le clique de la souris, seulement en passant le curseur sur une image).

Mon problème : Mon code une fois terminé, tout fonctionne parfaitement bien sauf un petit détail... j'ai défini au préalable une couleur pour chaque label lorsque le curseur passe dessus (à l'aide d'un Private Sub Label_MouseMove) sauf que la couleur s'affiche lorsque je survole les labels alors que je n'ai pas survolé l'image auparavant ( cf. seconde image en pièce jointe).
Je voudrais donc qu'aucune couleur n'apparaisse tant que je n'ai pas survolé mon image.

Voilà le code pour un label uniquement :

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
33
34
 
 
Private Sub Label1_Click()
ThisWorkbook.FollowHyperlink "", NewWindow:=True
End Sub
 
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        Label1.BackColor = RGB(85, 151, 249)
        Label2.BackColor = RGB(208, 208, 208)
        Label3.BackColor = RGB(208, 208, 208)
        Label4.BackColor = RGB(208, 208, 208)
End Sub
 
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ActiveSheet.Label1.Caption = "Armoire de Puissance"
ActiveSheet.Label2.Caption = "Plan de Circulation des Fluides"
ActiveSheet.Label3.Caption = "Armoires de Commandes"
ActiveSheet.Label4.Caption = "Chambre de Combustion"
Label1.BackColor = RGB(208, 208, 208)
Label2.BackColor = RGB(208, 208, 208)
Label3.BackColor = RGB(208, 208, 208)
Label4.BackColor = RGB(208, 208, 208)
End Sub
 
Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ActiveSheet.Label1.Caption = ""
ActiveSheet.Label2.Caption = ""
ActiveSheet.Label3.Caption = ""
ActiveSheet.Label4.Caption = ""
Label1.BackColor = vbWhite
Label2.BackColor = vbWhite
Label3.BackColor = vbWhite
Label4.BackColor = vbWhite
End Sub
J'ai déjà essayé sans succès cette solution :

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
 
 
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If X < Image1.Width - 40 Then
        Label1.BackColor = RGB(85, 151, 249)
        Label2.BackColor = RGB(208, 208, 208)
        Label3.BackColor = RGB(208, 208, 208)
        Label4.BackColor = RGB(208, 208, 208)
      Else
        Label1.BackColor = RGB(255, 255, 255)
        Label2.BackColor = RGB(255, 255, 255)
        Label3.BackColor = RGB(255, 255, 255)
        Label4.BackColor = RGB(255, 255, 255)
      End If
End Sub
Première Image :

Nom : Première image.jpg
Affichages : 656
Taille : 153,5 Ko

Deuxième Image :

Nom : deuxième image.jpg
Affichages : 650
Taille : 147,3 Ko


Merci d'avance pour votre aide