Le fichier à télécharger contient:
Les principales caractéristiques:
Remarques:
- Le Module_ExactVisibleRangeSize à importer dans le projet VBA.
- Le Module_Test qui donne un exemple d'utilisation.
Les principales caractéristiques:
Le Module_ExactVisibleRangeSize contient la fonction:
- GetExactVisibleRangeSizeToScreen() pour obtenir les dimensions en Points de la plage visible exacte par rapport à l'écran pour positionner des Objets dont le Parent n'est pas la fenêtre (ex. un UserForm).
- GetExactVisibleRangeSizeToWindow() pour obtenir les dimensions en Points de la plage visible exacte par rapport à le fenêtre Excel pour positionner des Objets dont le Parent est la fenêtre (ex. une Shape).
- GetExactVisibleRangeRECTToScreen() idem GetExactVisibleRangeSizeToScreen() mais retourne le RECT en Pixels.
- GetExactVisibleRangeRECTToWindow() idem GetExactVisibleRangeSizeToWindow() mais retourne le RECT en Pixels.
- Le Window.VisibleRange donné par Excel inclut toujours les lignes et colonnes entières partiellement visibles aux limites de l'affichage. Il n'est donc pas très utile pour positionner précisément des Objets à ces limites, d'où ces fonctions.
- Le Zoom peut introduire de légères distorsions qui ne sont pas dues aux calculs mais à l'imprécision du Window.Zoom reçu en VBA.
- Pour tester le positionnement des UserForms dans le fichier fourni, le Module_GetUserFormMarginsPoints et sa fonction GetUserFormMarginsPoints() ont été utilisés pour retirer les marges peu visibles (léger brouillard) des UserForms et obtenir un visuel très précis de leur positionnement aux limites par le retrait de ces marges.