Icône de la ressource

VBA - Moniteurs / Écrans multiples - Leurs rectangles (Type RECT) - Position fenêtre Excel, UserForm V2

Le fichier à télécharger contient:
  1. Le Module_MultipleMonitorsUserForm à importer dans le projet VBA.
  2. Le Module_Test qui donne quelques exemples d'utilisation.
Les principales caractéristiques:
  • 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).
Note: le Type RECT indique pour une zone donnée les informations suivantes en Pixels:
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

MM.gif
  • J'aime
Réactions: TooFatBoy et JCabral