Bonsoir,
pour répondre à Romain00210 (et indirectement à gmb)
Une version modifiée par un code internet
Donc moi même je cherche !
Le principe était la différence de grandeur entre un pixel et un point...
Voici ce qui est dit :
Salut,
Le problème vient du fait que les dimensions sont en pixels et les positions en points...
Voici un code que j'ai récupéré je sais plus où (désolé pour l'auteur) et adapté pour ce que tu veux (du moins si j'ai bien compris)
Option Explicit
Private Declare Function GetDC& Lib _
"user32.dll" (ByVal hwnd&)
Private Declare Function GetDeviceCaps& _
Lib "gdi32" (ByVal hDC&, ByVal nIndex&)
Sub UserFormAlign()
' 1 inch = 72 points for usually 96 or 120 dpi
Dim x#, y#, w#, h#
x = GetDeviceCaps(GetDC(0), 88) / 72
y = GetDeviceCaps(GetDC(0), 90) / 72
With UserForm1
.StartUpPosition = 0
.Left = (ActiveWindow.PointsToScreenPixelsX(ActiveCell.Left * x) * 1 / x) + ActiveCell.Width
.Top = (ActiveWindow.PointsToScreenPixelsY(ActiveCell.Top * y) * 1 / y) + ActiveCell.Height
.Show
End With
End Sub
A+
Après au niveau de la formule :
.Left = (ActiveWindow.PointsToScreenPixelsX(ActiveCell.Left * x) * 1 / x) + 2 '+ ActiveCell.Width
.Top = (ActiveWindow.PointsToScreenPixelsY(ActiveCell.Top * y) * 1 / y) + ActiveCell.Height + 4
j'ai modifié les valeur surlignées afin de faire correspondre le coin supérieur gauche du popup avec le coin inférieur gauche de la cellule... C'est tout ce que j'ai fait !!!
@ bientôt
LouReeD