Bonjour,
Est-il possible d'afficher une image .jpg depuis un userform en plaçant le curseur de la souris sur un bouton? L'image s'ouvrirait alors temporairement jusqu'a ce que l'utilisateur bouge sa souris.
Merci par avance.
Philippe
Bonjour,
Est-il possible d'afficher une image .jpg depuis un userform en plaçant le curseur de la souris sur un bouton? L'image s'ouvrirait alors temporairement jusqu'a ce que l'utilisateur bouge sa souris.
Merci par avance.
Philippe
Bonjour,
Une piste. Mettre un contrôle Image sur la Form au bon emplacement avec l'image .jpg voulue et régler sa propriété "Visible" à False. Le survol du bouton va afficher l'image pour 1 seconde (il est possible de régler le temps d'affichage) puis elle disparaît. Si la souris ne quitte pas le bouton, l'image ne réapparaîtra plus, il faudra que la souris retourne sur la Form pour permettre ensuite de pouvoir ré-afficher l'image. Le code ci-dessous est à mettre dans le module de la Form. L'Api GetTickCount sert à la minuterie :
Hervé.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 Private Declare Function GetTickCount Lib "Kernel32" () As Long Dim Pos As Boolean Sub Minuterie(Milliseconde As Long) Dim Arret As Long Arret = GetTickCount() + Milliseconde Do While GetTickCount() < Arret DoEvents Loop End Sub Private Sub UserForm_MouseMove(ByVal Button As Integer, _ ByVal Shift As Integer, _ ByVal X As Single, _ ByVal Y As Single) 'permet de réafficher l'image après avoir quitté le bouton If Pos = True Then Pos = False End Sub Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 'si la souris survole le bouton, l'image apparaît une seconde 'puis disparaît. La souris doit retourner sur la Form pour que 'l'image puisse à nouveau apparaître au survol du bouton With CommandButton1 '10 pour une marge If X < .Width - 10 Or X > 10 Or Y < .Height - 10 Or Y > 10 Then If Pos = False Then Image1.Visible = True Minuterie 1000 '<-- ici, 1 seconde (en millièmes) Image1.Visible = False Pos = True End If End If End With End Sub
Partager