Lu76Fer
XLDnaute Occasionnel
Sujet : éclaircir la différence existant entre ces deux fonctions appartenant à 2 objets différents
Bien-sûr il y a aussi la fonction PointsToScreenPixelsY et c'est le pendant pour calculer l'ordonnée d'un point sur la grille, sur l'écran.
En faite, la fonction Pane.PointsToScreenPixelsXouY est apparue dans la version d'Excel 2007, sous 2003 il n'y avait que Window.PointsToScreenPixelsX ouY et il est resté par soucis de compatibilité ascendante.
Window.PointsToScreenPixelsX : cette fonction permet de calculer la position sur l'écran d'une grandeur sur la grille Range.Top ou Range.Left, sur l'écran en travaillant sur l'ActivePane. Il s'agit du volet actif et il peut y en avoir 4,2 ou 1 selon le nombre de séparateur ... Cette fonction ne tient pas compte du Zoom sur la grille et même avec un zoom à 100% donne une position approximative ?!? En faite la seule information utile que peut donner cette fonction c'est pour la position du Volet Actif :
Cela peut vous permettre de connaitre la position de la grille mais de façon très indirecte ... Il faut être sur le volet 1 et avoir la cellule A1 visible dans celui-ci.
Pane.PointsToScreenPixelsX : cette fonction fait la même chose sur le volet Pane, tient compte du zoom et donne la position exacte !
Conclusion : n'utilisez pas ActiveWindow.PointsToScreenPixelsXouY mais ActiveWindow.Panes(i).PointsToScreenPixelsXouY si vous ne souhaitez pas vous prendre inutilement le choux !
Bien-sûr il y a aussi la fonction PointsToScreenPixelsY et c'est le pendant pour calculer l'ordonnée d'un point sur la grille, sur l'écran.
En faite, la fonction Pane.PointsToScreenPixelsXouY est apparue dans la version d'Excel 2007, sous 2003 il n'y avait que Window.PointsToScreenPixelsX ouY et il est resté par soucis de compatibilité ascendante.
Window.PointsToScreenPixelsX : cette fonction permet de calculer la position sur l'écran d'une grandeur sur la grille Range.Top ou Range.Left, sur l'écran en travaillant sur l'ActivePane. Il s'agit du volet actif et il peut y en avoir 4,2 ou 1 selon le nombre de séparateur ... Cette fonction ne tient pas compte du Zoom sur la grille et même avec un zoom à 100% donne une position approximative ?!? En faite la seule information utile que peut donner cette fonction c'est pour la position du Volet Actif :
VB:
x = ActiveWindow.PointsToScreenPixelsX(0)
y = ActiveWindow.PointsToScreenPixelsY(0)
Pane.PointsToScreenPixelsX : cette fonction fait la même chose sur le volet Pane, tient compte du zoom et donne la position exacte !
Conclusion : n'utilisez pas ActiveWindow.PointsToScreenPixelsXouY mais ActiveWindow.Panes(i).PointsToScreenPixelsXouY si vous ne souhaitez pas vous prendre inutilement le choux !