Le fichier à télécharger contient:
Les principales caractéristiques:
- Le Module_PositionUserFormOnSheetO à importer dans le projet VBA.
- Le Module_Test comme exemple de mise en œuvre.
Les principales caractéristiques:
- Permet de positionner un UserForm par rapport à un Objet d'une feuille (Range, Control Active X, Image, Shape, ...).
- C'est une alternative simplifiée à la Ressource VBA - Positionner un Objet par rapport à un autre Objet - Principal concerné... le UserForm qui répond au besoin d'un positionnement simple et fréquent avec peu de paramètres.
- Selon les versions d'Excel et de Windows, les UserForms possèdent des marges extérieures plus ou moins grandes qui peuvent laisser penser que le positionnement n'est pas tout à fait précis. Pour une position visuellement précise, on effectue donc une petite correction par défaut dans le code (développé et testé sur Windows 10 64bits et Excel 2016 64bits).
Si pour d'autres environnements cette correction n'est pas juste, valoriser le paramètre optionnel ad hoc pour l'annuler et utiliser éventuellement les paramètres optionnels de décalage horizontal et vertical.
- Placer le Module_PositionUserFormOnSheetO dans la projet VBA.
- Dans le code VBA utiliser la fonction PositionUserFormOnSheetObject() avec les paramètres ad hoc.
VB:Call PositionUserFormOnSheetObject(UserForm1, ActiveCell) UserForm1.Show
- 4 paramètres optionnels supplémentaires permettent:
- d'activer ou pas la correction automatique des marges extérieures du UserForm,
- de définir un décalage horizontal (en Points) par rapport à la gauche (.Left) de l'Objet,
- de définir un décalage vertical (en Points) par rapport au haut (.Top) de l'Objet.
- de dimensionner le UserForm à la taille de l'Objet.
- V1 - Initiale.
- V2 - MacOS compatible + ajout option d'ignorer les marges extérieures du UserForm pour un positionnement visuel plus précis.
- V3 - Correction pour intégration des paramètres HorizontalShiftPoints et VerticalShiftPoints dans le PointsToScreenPixelsX/Y pour leur appliquer aussi le Zoom.
- V4 - Intègre le calcul des marges du UserForm par l'API.
- V5 - Ajout du paramètre optionnel SizeOnWorksheetObject qui permet de dimensionner le UserForm à la taille de l'objet.
- Version
- V1