tout est à mettre dans un Form
Source / Exemple :
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal Hwnd As Long, lpRect As RECT) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Dim VarPointAPI As POINTAPI
Dim VarObjRect As RECT
Private Function IsOnObject(Hwnd As Long) As Boolean
GetCursorPos VarPointAPI
GetWindowRect Hwnd, VarObjRect
If VarPointAPI.x > VarObjRect.Left And _
VarPointAPI.x < VarObjRect.Right And _
VarPointAPI.y > VarObjRect.Top And _
VarPointAPI.y < VarObjRect.Bottom Then
IsOnObject = True
Else
IsOnObject = False
End If
End Function
Conclusion :
La fonction renvoie True si la souris est dessus ou False si elle n'y est pas
L'avantage d'utiliser cette méthode (plutot que Form_mousemove) est que si l'objet en question est sur une feuille avec parmi plein d'autre, la souris peut sauter sur un autre objet sans être passer par dessus la feuille.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.