(vba) _MouseMove

Le
j-pascal
Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ) un moyen
de faire apparaître un "Shape" au passage du pointeur de la souris sur un
bouton

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As Integer,
ByVal X As Single, ByVal Y As Single)
If X < 10 Or X > Toto.Width - 10 Or Y < 10 Or Y > Toto.Height - 10 Then
If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec un
code adapté ) restent tous affichés sur la feuille

Merci d'avance pour votre aide,

Cordialement,

JP
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5384331
Si dans ton formulaire, tu as un bouton de commande dont
le nom est commandbutton1 et que dans la feuille active
tu as une shape au nom de toto, la procédure qui suit
fonctionne très bien.

En fait, elle rend visible la shape seulement lorsque la souris
se déplace a l'intérieur du bouton de commande, il y a une petite
bordure autour du bouton qui ne fait pas réagir la shape


'-------------------------
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

If X < 10 Or X > CommandButton1.Width - 10 Or Y < 10 Or _
Y > CommandButton1.Height - 10 Then
ActiveSheet.Shapes("toto").Visible = False
Else
ActiveSheet.Shapes("toto").Visible = True
End If
End Sub
'-------------------------



"j-pascal"
Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ...) un moyen
de faire apparaître un "Shape" au passage du pointeur de la souris sur un
bouton ...

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'------------------------
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As Integer,
ByVal X As Single, ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'------------------------

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec un
code adapté ...) restent tous affichés sur la feuille ...

Merci d'avance pour votre aide,

Cordialement,

JP
Jacques93
Le #5384311
Bonjour j-pascal,

Comment, et où, déclare tu la variable centre. Le code suivant marche
très bien (j'ai réduit la zone inactive à 5 pixels, en bordure)


Dim centre As Boolean

Private Sub Toto_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub

Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ...) un
moyen de faire apparaître un "Shape" au passage du pointeur de la souris
sur un bouton ...

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'------------------------
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'------------------------

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec
un code adapté ...) restent tous affichés sur la feuille ...

Merci d'avance pour votre aide,

Cordialement,

JP





--
Cordialement,

Jacques.

AH60
Le #5384301
Bonjour à vous deux
dans le même sujet si vous permettez
pour MichDenis : y a t-il un autre moyen de faire apparaitre un Shape au
passage du pointeur de la souris sur une cellule ? pas un commentaire
merci

Abed_H




Si dans ton formulaire, tu as un bouton de commande dont
le nom est commandbutton1 et que dans la feuille active
tu as une shape au nom de toto, la procédure qui suit
fonctionne très bien.

En fait, elle rend visible la shape seulement lorsque la souris
se déplace a l'intérieur du bouton de commande, il y a une petite
bordure autour du bouton qui ne fait pas réagir la shape


'-------------------------
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

If X < 10 Or X > CommandButton1.Width - 10 Or Y < 10 Or _
Y > CommandButton1.Height - 10 Then
ActiveSheet.Shapes("toto").Visible = False
Else
ActiveSheet.Shapes("toto").Visible = True
End If
End Sub
'-------------------------



"j-pascal"
Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ...) un moyen
de faire apparaître un "Shape" au passage du pointeur de la souris sur un
bouton ...

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'------------------------
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As Integer,
ByVal X As Single, ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'------------------------

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec un
code adapté ...) restent tous affichés sur la feuille ...

Merci d'avance pour votre aide,

Cordialement,

JP






MichDenis
Le #5384271
Directement, non. il n'y a pas d'événement prévu par excel pour
faire ce type de chose...dans la feuille, tu peux ajouter un contrôle "Label"
issu de la barre d'outils "Contrôle" au dessus d'une cellule déterminée et
tu aurais le même comportement que l'exemple avec le formulaire :

'-------------------
Private Sub Label1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

End Sub
'-------------------


"AH60"
Bonjour à vous deux
dans le même sujet si vous permettez
pour MichDenis : y a t-il un autre moyen de faire apparaitre un Shape au
passage du pointeur de la souris sur une cellule ? pas un commentaire
merci

Abed_H




Si dans ton formulaire, tu as un bouton de commande dont
le nom est commandbutton1 et que dans la feuille active
tu as une shape au nom de toto, la procédure qui suit
fonctionne très bien.

En fait, elle rend visible la shape seulement lorsque la souris
se déplace a l'intérieur du bouton de commande, il y a une petite
bordure autour du bouton qui ne fait pas réagir la shape


'-------------------------
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

If X < 10 Or X > CommandButton1.Width - 10 Or Y < 10 Or _
Y > CommandButton1.Height - 10 Then
ActiveSheet.Shapes("toto").Visible = False
Else
ActiveSheet.Shapes("toto").Visible = True
End If
End Sub
'-------------------------



"j-pascal"
Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ...) un moyen
de faire apparaître un "Shape" au passage du pointeur de la souris sur un
bouton ...

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'------------------------
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As Integer,
ByVal X As Single, ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'------------------------

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec un
code adapté ...) restent tous affichés sur la feuille ...

Merci d'avance pour votre aide,

Cordialement,

JP






AH60
Le #5384261
Merci MichDenis et bonne nuit



Directement, non. il n'y a pas d'événement prévu par excel pour
faire ce type de chose...dans la feuille, tu peux ajouter un contrôle "Label"
issu de la barre d'outils "Contrôle" au dessus d'une cellule déterminée et
tu aurais le même comportement que l'exemple avec le formulaire :

'-------------------
Private Sub Label1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

End Sub
'-------------------


"AH60"
Bonjour à vous deux
dans le même sujet si vous permettez
pour MichDenis : y a t-il un autre moyen de faire apparaitre un Shape au
passage du pointeur de la souris sur une cellule ? pas un commentaire
merci

Abed_H




Si dans ton formulaire, tu as un bouton de commande dont
le nom est commandbutton1 et que dans la feuille active
tu as une shape au nom de toto, la procédure qui suit
fonctionne très bien.

En fait, elle rend visible la shape seulement lorsque la souris
se déplace a l'intérieur du bouton de commande, il y a une petite
bordure autour du bouton qui ne fait pas réagir la shape


'-------------------------
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

If X < 10 Or X > CommandButton1.Width - 10 Or Y < 10 Or _
Y > CommandButton1.Height - 10 Then
ActiveSheet.Shapes("toto").Visible = False
Else
ActiveSheet.Shapes("toto").Visible = True
End If
End Sub
'-------------------------



"j-pascal"
Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ...) un moyen
de faire apparaître un "Shape" au passage du pointeur de la souris sur un
bouton ...

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'------------------------
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As Integer,
ByVal X As Single, ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'------------------------

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec un
code adapté ...) restent tous affichés sur la feuille ...

Merci d'avance pour votre aide,

Cordialement,

JP











j-pascal
Le #5384251
Bonsoir,

Merci, mais on est d'accord que je peux appeler "toto" ce que tu nommes
"CommandButton1" ??
Alors (si oui) je ne vois pas la différence avec "mon" code !!

Est-ce que le fait que le "bouton" soit sur un UF a une incidence ? Ou
encore la protection de la feuille ?

JP


"MichDenis"
Si dans ton formulaire, tu as un bouton de commande dont
le nom est commandbutton1 et que dans la feuille active
tu as une shape au nom de toto, la procédure qui suit
fonctionne très bien.

En fait, elle rend visible la shape seulement lorsque la souris
se déplace a l'intérieur du bouton de commande, il y a une petite
bordure autour du bouton qui ne fait pas réagir la shape


'-------------------------
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

If X < 10 Or X > CommandButton1.Width - 10 Or Y < 10 Or _
Y > CommandButton1.Height - 10 Then
ActiveSheet.Shapes("toto").Visible = False
Else
ActiveSheet.Shapes("toto").Visible = True
End If
End Sub
'-------------------------



"j-pascal"
Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ...) un moyen
de faire apparaître un "Shape" au passage du pointeur de la souris sur un
bouton ...

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'------------------------
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer,
ByVal X As Single, ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'------------------------

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec un
code adapté ...) restent tous affichés sur la feuille ...

Merci d'avance pour votre aide,

Cordialement,

JP





j-pascal
Le #5384241
Re,

Je viens de mettre le code dans le module de feuille ... ça ne fonctionne
pas non plus !
J'ai vraiment le "pressentiment" que le problème vient du fait que le
"bouton survolé" n'est pas directement sur la feuille mais sur un UF ...

JP

"MichDenis"
Si dans ton formulaire, tu as un bouton de commande dont
le nom est commandbutton1 et que dans la feuille active
tu as une shape au nom de toto, la procédure qui suit
fonctionne très bien.

En fait, elle rend visible la shape seulement lorsque la souris
se déplace a l'intérieur du bouton de commande, il y a une petite
bordure autour du bouton qui ne fait pas réagir la shape


'-------------------------
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

If X < 10 Or X > CommandButton1.Width - 10 Or Y < 10 Or _
Y > CommandButton1.Height - 10 Then
ActiveSheet.Shapes("toto").Visible = False
Else
ActiveSheet.Shapes("toto").Visible = True
End If
End Sub
'-------------------------



"j-pascal"
Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ...) un moyen
de faire apparaître un "Shape" au passage du pointeur de la souris sur un
bouton ...

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'------------------------
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer,
ByVal X As Single, ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'------------------------

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec un
code adapté ...) restent tous affichés sur la feuille ...

Merci d'avance pour votre aide,

Cordialement,

JP





j-pascal
Le #5384231
Bonsoir Jacques,

Ton bouton est-il sur un UF ?

Les essais que j'ai fait fonctionnent également, mais le pb semble être le
UF (voire la protection de la feuille ??) ...

@+ ?

JP

Si je n'avais pas déclaré la variable, j'aurais eu (avec Option Explicit !)
une fenêtre de débogage ... c'est pour cela que j'ai précisé que je n'en
avais pas eue)

"Jacques93" a écrit dans le message de news:

Bonjour j-pascal,

Comment, et où, déclare tu la variable centre. Le code suivant marche très
bien (j'ai réduit la zone inactive à 5 pixels, en bordure)


Dim centre As Boolean

Private Sub Toto_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub

Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ...) un
moyen de faire apparaître un "Shape" au passage du pointeur de la souris
sur un bouton ...

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'------------------------
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'------------------------

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec
un code adapté ...) restent tous affichés sur la feuille ...

Merci d'avance pour votre aide,

Cordialement,

JP





--
Cordialement,

Jacques.



j-pascal
Le #5384221
Finalement, j'ai réactivé le code dans le code du UF ...

Ce n'est pas la protection de la feuille qui coince, mais par contre, il
faut "déprotèger" la feuillle pour faire disparaître les "Shapes" et ensuite
la reprotéger ; le code fonctionne alors (apparemment) normalement !

JP


"MichDenis"
Si dans ton formulaire, tu as un bouton de commande dont
le nom est commandbutton1 et que dans la feuille active
tu as une shape au nom de toto, la procédure qui suit
fonctionne très bien.

En fait, elle rend visible la shape seulement lorsque la souris
se déplace a l'intérieur du bouton de commande, il y a une petite
bordure autour du bouton qui ne fait pas réagir la shape


'-------------------------
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

If X < 10 Or X > CommandButton1.Width - 10 Or Y < 10 Or _
Y > CommandButton1.Height - 10 Then
ActiveSheet.Shapes("toto").Visible = False
Else
ActiveSheet.Shapes("toto").Visible = True
End If
End Sub
'-------------------------



"j-pascal"
Bonjour,

J'ai trouvé (désolé pour l'auteur, je ne me souviens plus où ...) un moyen
de faire apparaître un "Shape" au passage du pointeur de la souris sur un
bouton ...

Mon "Shape" s'intitule "Aide2"
"Toto" est le nom du bouton,

Ci-après le code :

'------------------------
Private Sub Toto_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer,
ByVal X As Single, ByVal Y As Single)
If X If centre = True Then
entrée = False
centre = False
ActiveSheet.Shapes("Aide2").Visible = False
End If
Else
ActiveSheet.Shapes("Aide2").Visible = True
centre = True
End If
End Sub
'------------------------

Problème : Ca ne fonctionne pas !
A noter que :
- le bouton "Toto" se situe sur un UF
- la feuille est protégée par la macro
- aucun message de débogage
- j'ai mis le code dans le module du UF et j'ai même fait un essai en le
mettant dans un module "normal"
- le survol du bouton est sans effet, les "Shapes" (car j'en ai 4, avec un
code adapté ...) restent tous affichés sur la feuille ...

Merci d'avance pour votre aide,

Cordialement,

JP





Jacques93
Le #5384211
Bonsoir Jacques,

Ton bouton est-il sur un UF ?


Oui

Les essais que j'ai fait fonctionnent également, mais le pb semble être
le UF (voire la protection de la feuille ??) ...



Quel type de protection mets tu sur la feuille ?
Avec les options par défaut ça fonctionne.


Si je n'avais pas déclaré la variable, j'aurais eu (avec Option Explicit
!) une fenêtre de débogage ... c'est pour cela que j'ai précisé que je
n'en avais pas eue)


Je n'avais pas vu que tu avais précisé Option Explicit

--
Cordialement,

Jacques.

Publicité
Poster une réponse
Anonyme