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 :
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
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
Première Image :
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
Deuxième Image :
Merci d'avance pour votre aide![]()
Partager