Bonjour à tous,
Cela fait un moment que je cherche sur le web un bout de code, solutions, explications pour pouvoir récupérer la résolution de plusieurs écran connecté à 1 PC sans résultat.
Actuellement j'utilise le code ci-dessous, récupéré sur le net et mit à ma sauce, qui me permet de connaitre le ratio et ainsi redimensionner mon interface à l'écran.
Par contre si l'utilisateur ouvre le fichier excel sur son écran secondaire et que celui-ci n'a pas le même ratio, l'interface est dimensionné pour l'écran principal ! Ce qui est mon cas, mon écran principal a une résolution 16/9 et mon écran secondaire une résolution 4/3.
Voici le code actuel :
Donc si quelqu'un sait comment récupérer la résolution de l'écran secondaire, c'est très volontier
Cela fait un moment que je cherche sur le web un bout de code, solutions, explications pour pouvoir récupérer la résolution de plusieurs écran connecté à 1 PC sans résultat.
Actuellement j'utilise le code ci-dessous, récupéré sur le net et mit à ma sauce, qui me permet de connaitre le ratio et ainsi redimensionner mon interface à l'écran.
Par contre si l'utilisateur ouvre le fichier excel sur son écran secondaire et que celui-ci n'a pas le même ratio, l'interface est dimensionné pour l'écran principal ! Ce qui est mon cas, mon écran principal a une résolution 16/9 et mon écran secondaire une résolution 4/3.
Voici le code actuel :
Code:
Option Explicit
Private Declare PtrSafe Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long
Private Declare PtrSafe Function ReleaseDC Lib "User32" (ByVal hWnd As Long, ByVal hDC As Long) As Long
Declare PtrSafe Function GetSystemMetrics Lib "User32" (ByVal nIndex As Long) As Long
'
Private Const LOGPIXELSX = 88 'Pixels/inch in X
'
'A point is defined as 1/72 inches
Private Const POINTS_PER_INCH As Long = 72
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1
Function Rez_Display()
'This function determined the ratio of the MAIN display of the user's computer
'Function result is equal at :
'169 = 16/9 screen (i.e.1920x1080)
'43 = 4/3 screen (i.e. 1024x768)
'54 = 5/4 screen (i.e. 1280x1024)
Dim LargeurVid As Long, HauteurVid As Long
LargeurVid = GetSystemMetrics(SM_CXSCREEN)
HauteurVid = GetSystemMetrics(SM_CYSCREEN)
If LargeurVid / HauteurVid * 9 = 16 And HauteurVid / LargeurVid * 16 = 9 Then
Rez_Display = 169
ElseIf LargeurVid / HauteurVid * 3 = 4 And HauteurVid / LargeurVid * 4 = 3 Then
Rez_Display = 43
ElseIf LargeurVid / HauteurVid * 4 = 5 And HauteurVid / LargeurVid * 5 = 4 Then
Rez_Display = 54
Else
Rez_Display = 169
End If
End Function
Donc si quelqu'un sait comment récupérer la résolution de l'écran secondaire, c'est très volontier
Dernière modification par un modérateur: