Affichage d'un userform au niveau du pointeur de la souris

Guillaume33

XLDnaute Nouveau
Bonjour à tous,

J'aimerais savoir comment faire (si c'est possible) pour que mon userform, qui se lance quand je clique sur une cellule, s'ouvre au niveau du pointeur de ma souris. Je sais comment faire pour l'afficher au centre, en haut à gauche mais pas n'importe où.

J'ai regardé sur plusieurs forums mais sans trouver de bonne réponse.

Merci d'avance pour vos réponses.

Guillaume
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Affichage d'un userform au niveau du pointeur de la souris

Bonjour Guillaume le forum
oui c'est tout à fait possible, il faut utiliser la propriété left = activecell.left et la position top également
et comme tu n'as pas mis de fichier bah c'est simple "débrouille toi tout seul" !!!
avec un fichier tu l'aurais eu tout fini
a+
Papou:)
 

Guillaume33

XLDnaute Nouveau
Re : Affichage d'un userform au niveau du pointeur de la souris

Tout d'abord, merci pour ta réponse.

Je viens d'essayer mais ça ne marche pas, je vais chercher encore où ça peut coincer...

Et j'aurai bien voulu mettre le fichier où j'en ai besoin mais c'est un fichier d'une entreprise et je n'ai pas le droit de le partager (logique). Je vais essayer d'en créer un du même style si ça peut vous être utile.

Encore merci :)

Guillaume
 

Paritec

XLDnaute Barbatruc
Re : Affichage d'un userform au niveau du pointeur de la souris

Re Guillaume 33 le forum
voilà dans le fichier joins tu l'ouvres et tu cliques ou tu veux
j'aime beaucoup le " j'ai essayé cela ne marche pas !!!"
a+
Papou:)
 

Pièces jointes

  • Guillaume V1.xlsm
    15.8 KB · Affichages: 66

Modeste geedee

XLDnaute Barbatruc
Re : Affichage d'un userform au niveau du pointeur de la souris

Bonsour®
peut-être :
VB:
Private Sub UserForm_Activate()
UserForm1.Left = ActiveCell.Offset(0, 2).Left + ActiveWindow.Left
UserForm1.Top = ActiveCell.Offset(0, 1).Top + ActiveWindow.Top + Me.Height
End Sub
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Affichage d'un userform au niveau du pointeur de la souris

Bonjour,

IL faut que la propriété StartUpPosition du formulaire soit Manuel

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([A2:A100], Target) Is Nothing And Target.Count = 1 Then
  UserForm1.Left = Target.Left + 150
  UserForm1.Top = Target.Top + 90 - Cells(ActiveWindow.ScrollRow, 1).Top
  UserForm1.Show
End If
End Sub

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/ListeIntuitive5.xls

JB
 
Dernière édition:

Guillaume33

XLDnaute Nouveau
Re : Affichage d'un userform au niveau du pointeur de la souris

Merci encore :)

J'ai regardé ton fichier et j'ai adapté le mien mais ça ne marche pas... Est-ce qu'il faut absolument mettre le TOP avant le LEFT ou ça n'a pas d'importance ?

Guillaume
 

NezQuiCoule

XLDnaute Occasionnel
Re : Affichage d'un userform au niveau du pointeur de la souris

s'ouvre au niveau du pointeur de ma souris

Pour cette demande précise, une piste avec l'API GetCursorPos

Dans un module, au début :
Code:
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long 
Type POINTAPI 
    x As Long 
    y As Long 
End Type

Sur la feuille :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([A2:A100], Target) Is Nothing And Target.Count = 1 Then
    Dim lngStatus As Long 
    Dim typWhere As POINTAPI 
    lngStatus = GetCursorPos(typWhere)
    UserForm1.Show False
    UserForm1.Left = typWhere.x
    UserForm1.Top = typWhere.y
End If
End Sub

Attention : Il y a une échelle à déterminer car les pixels de la feuille Excel et de GetCursorPos ne sont pas identiques, mais c'est l'idée
 
Dernière édition:

Guillaume33

XLDnaute Nouveau
Re : Affichage d'un userform au niveau du pointeur de la souris

Merci à tous pour vos réponses !

J'allais préparer un fichier type à vous envoyer (parce que je ne peux pas partager celui sur lequel je travaille) et j'ai réussi à comprendre comment ça marchait sur ce fichier type. J'ai donc pu essayer sur mon fichier de travail et ça a marché avec la méthode de BOISGONTIER.

J'avais essayé avant presque comme c'était indiqué sur son post mais il devait y avoir un problème.

Enfin bon, ça marche, merci encore pour vos réponses ! :)
 

Discussions similaires

Statistiques des forums

Discussions
312 307
Messages
2 087 096
Membres
103 468
dernier inscrit
TRINITY