Le fichier à télécharger contient:
Versions:
- Le Module_MultipleMonitorsUserForm à importer dans le projet VBA.
- Le Module_Test qui donne quelques exemples d'utilisation.
- Une liste de fonctions pour maîtriser ses différents moniteurs et y placer des objets comme un UserForm:
VB:
'-------------------------------------------------------- 'List of functions (Check comments for parametres values) '-------------------------------------------------------- ' CountOfMonitors ' ExcelWindowMonitorNumber() ' PlaceUserFormInMonitor() ' GetMonitorRECT() ' GetWorkRECT() ' GetTaskBarRECT() ' GetExcelClientWindowRECT() ' GetVisibleRangeRECT() ' PixelsToPointsX() ' PixelsToPointsY()
- Qui permettent de connaître de connaître pour chaque Moniteur:
- le RECT de sa zone écran,
- le RECT de sa Work Area (zone écran - barre des tâches),
- le RECT de sa barre des tâches (pour info).
- Qui, pour Excel, permettent de connaître:
- dans quel Moniteur sa fenêtre se trouve (son coin haut gauche),
- le RECT de sa fenêtre,
- le RECT de sa plage visible (VisibleRange strictement limité à la partie intérieure de la fenêtre Excel)
- Et de positionner un UserForm dans le moniteur de son choix par rapport à la zone de son choix (Écran, Work Area, Fenêtre Excel, Plage visible) soit en relatif (avec des ratios de décalage Vertical & Horizontal) soit en absolu (grâce aux valeurs de RECT converties de Pixels en Points).
VB:
'Type Rectangle
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Versions:
- V1 - Initiale
- V2 - Compatibilité Office 64 Bits