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: