gramlinz60
Messages postés23Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 4 décembre 2008
-
9 oct. 2006 à 23:35
gramlinz60
Messages postés23Date d'inscriptionjeudi 16 juin 2005StatutMembreDerniè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
B0mbJacK
Messages postés141Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention25 octobre 20061 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
gramlinz60
Messages postés23Date d'inscriptionjeudi 16 juin 2005StatutMembreDerniè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??????
DavidWhitewater
Messages postés81Date d'inscriptionlundi 10 avril 2006StatutMembreDerniè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
gramlinz60
Messages postés23Date d'inscriptionjeudi 16 juin 2005StatutMembreDerniè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
Vous n’avez pas trouvé la réponse que vous recherchez ?
DavidWhitewater
Messages postés81Date d'inscriptionlundi 10 avril 2006StatutMembreDerniè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.
gramlinz60
Messages postés23Date d'inscriptionjeudi 16 juin 2005StatutMembreDerniè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