Bonjour,
J'ai fait un UserForm qui doit être lancé au clic sur une cellule. Celui-ci doit apparaître à coté du curseur.
Pour cela j'ai trouvé un code que j'ai implémenter de la manière suivante :
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Sub UserForm_Initialize()
Dim Pt As POINTAPI
GetCursorPos Pt
MsgBox "x : " & Pt.X & " ; Y " & Pt.Y
With UserForm1
.Left = Pt.X
.Top = Pt.Y
End With
der_ligne = ThisWorkbook.Sheets("liste des clients").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To der_ligne
ComboBox1.AddItem ThisWorkbook.Sheets("liste des clients").Range("A" & i).Value
Next
End Sub
Le tout est appelé dans une détection de changement de sélection.
J'ai malheureusement remarqué qu'un décalage entre l'endroit du clic et l'apparition de la fenêtre se faisait. Auriez-vous un correctif à proposer ? Une constante à soustraire pour obtenir la bonne valeur ?
Arthur