Nom du bouton sur lequel on viens de cliquer

gramlinz60 Messages postés 23 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 4 décembre 2008 - 9 oct. 2006 à 23:35
gramlinz60 Messages postés 23 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 4 décembre 2008 - 15 oct. 2006 à 14:43
Bonsoir à tous,
voila mon problème :
Je souhaiterais faire apparaitre le nom des boutons que j'ai sur une feuille excel dans une bulle au moment du passage de la souris dessus.
Quelqu'un pourrait il m'aider?
J'en suis là : J'ai essayé d'affecter une macro à chacun des boutons lorsque l'on clique dessus pour déplacer une infobulle sur le bouton mais je n'arrive pas à récuperer le nom du bouton que l'on vient de cliquer puisqu'il n'est pas activé.
J'aimerais obtenir une solution avec le déplacement de la souris si possible car le clique est moins facile à gérer pour un affichage.
merci

7 réponses

B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
10 oct. 2006 à 04:00
Lu gramlinz 

l'api GetCursorPos te donne la position de la souris 
l'api WindowFromPoint  te donne le handle selon la position de la souris
l'api GetWindowText te donne le nom de l'objet du handle que tu lui passe en parametre

Voici un exemple de code à mettre dans un module

Private  Type PtApi
    x As Long
    y As Long
End Type

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Declare GetCursorPos Lib "user32" (Position as PtApi) as long

Public Function AfficheNom() as String
Dim xHandle as long, Pos as PtApi
    AfficheNom = space(100):GetCursorPos Pos  
    xHandle = WindowFromPoint(Pos.x,Pos.Y)
    GetWindowText xHandle, AfficheNom, 100
AfficheNom = Trim(AfficheNom)
End Sub

sous chaque bouton,tu tape...
 msgbox(ton truc) =  AfficheNom

Voila ,bon coding ...++
0
gramlinz60 Messages postés 23 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 4 décembre 2008
10 oct. 2006 à 23:56
Merci pour ta réponse rapide.
Cependant ta macro ne fonctionne pas.

-> GetWindowText xHandle, AfficheNom, 100
dans ta fonction getwindowtext tu déclares 2 variables, hors ici il y en a 3.
De plus mon AfficheNom est vide ou plus tot contient la valeur suivante : "                    " -> les 100 espaces mais pas de x ou de y comme le dit la fonction PtApi

Autres problème : que dois mettre a la place de 'Ton Truc" dans la msgbox??????

merci beaucoup de ton aide
0
DavidWhitewater Messages postés 81 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 1 janvier 2010
11 oct. 2006 à 17:08
Salut,

Si tu gère l'évenement click de tes boutons, tu peux faire ça :

Private Sub Buttons_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click
        MsgBox("Clic sur le bouton " & sender.name, MsgBoxStyle.OkOnly)
End Sub
0
gramlinz60 Messages postés 23 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 4 décembre 2008
11 oct. 2006 à 22:39
Merci pour ton info mais quand je met ton doce dans ma feuille, le message : " type défini par l'utilisateur non défini" en me selectionnant :"Private Sub Buttons_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)"

tu vois ou est le probleme?
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DavidWhitewater Messages postés 81 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 1 janvier 2010
12 oct. 2006 à 13:24
Bonjour, je t'avourais que le message d'erreur ne me dis rien. Est ce que le message apparrais à la compilation ou à l'éxecution ?
Le code que je t'est donné sous entend que tu ai 4 boutons sur une form, et qu'ils s'appel Button1,Button2 etc..

Le mieux c'est que tu ne copie pas le code mais que tu l'adapte à se que tu veux faire. Pour faire apparraitre le nom des boutons , utilise Sender.name.

A plus.
0
gramlinz60 Messages postés 23 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 4 décembre 2008
12 oct. 2006 à 13:49
c'est au moment ou la souris passe sur un bouton que le messagde apparait.
Pour etre plus claire sur mon souhait :
j'ai une carte (picture 44) sur laquelle sont positionnés des logos (format image aussi) et je souhaiterais que lorsque je passe sur les logos leur nom apparaisse dans une info bulle (par exemple).
Le nombre de logo peut aumgenter dans le temps dans l'evolution automatique de la macro serait le top. 
merci encore
0
gramlinz60 Messages postés 23 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 4 décembre 2008
15 oct. 2006 à 14:43
personne pour m'aider?
0
Rejoignez-nous