Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Taille Ecran

4 réponses
Avatar
Pounet95
Bonjour à toutes et tous,
Excel2000 sous Windows2000, Excel 2007 sous Vista ( Trial )

Je viens d'être équipé d'un PC portable dont l'écran est (je crois car je
n'ai aucune doc sur le matériel mis à dispo par le Service Informatique ) au
format 16/9.

Jusqu'à ce jour je 'développais' des applis maison sans tenir compte de ce
paramètre où, en fait, seule la largeur pose 'problème' par rapport aux
écrans classiques.

Ma question : Y a-t-il un moyen via VBA de reconnaître le format d'écran ?
C'est juste pour info. Les applis en prod continueront à fonctionner telles
que avec les dimensions de usf définis par Ht, Lg,lg,Top ...

Merci de vos suggestions, commentaires ( .... même désagréables )
Pounet95

4 réponses

Avatar
Daniel.C
Salut, Pounet,
Le code suivant, de Laurent Longre permet de récupérer la résolution de
l'écran (la macro à exécuter est Test) :

'============= 'Posted by Laurent Longre, Programming 06/10/99


Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _
ByVal hdc As Long) As Long
'*****************************************************************
' DECLARATIONS SECTION
'*****************************************************************
Option Explicit
Type RECT
x1 As Long
y1 As Long
x2 As Long
y2 As Long
End Type
' NOTE: The following declare statements are case sensitive.
Declare Function GetDesktopWindow Lib "User32" () As Long
Declare Function GetWindowRect Lib "User32" _
(ByVal hWnd As Long, rectangle As RECT) As Long
'*****************************************************************
' FUNCTION: GetScreenResolution() ' ' PURPOSE:
' To determine the current screen size or resolution. '
' RETURN:
' The current screen resolution. Typically one of the following:
' 640 x 480 ' 800 x 600 ' 1024 x 768 '
'*****************************************************************
Function GetScreenResolution() As String
Dim R As RECT
Dim hWnd As Long
Dim RetVal As Long
hWnd = GetDesktopWindow()
RetVal = GetWindowRect(hWnd, R)
GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
End Function

Sub Test()
Dim DC As Long
DC = GetDC(0)
MsgBox "Resolution : " & GetDeviceCaps(DC, 8) _
& " * " & GetDeviceCaps(DC, 10) & " pixels"
ReleaseDC 0, DC
End Sub

Cordialement.
Daniel
"Pounet95" a écrit dans le message de news:

Bonjour à toutes et tous,
Excel2000 sous Windows2000, Excel 2007 sous Vista ( Trial )

Je viens d'être équipé d'un PC portable dont l'écran est (je crois car je
n'ai aucune doc sur le matériel mis à dispo par le Service Informatique )
au format 16/9.

Jusqu'à ce jour je 'développais' des applis maison sans tenir compte de ce
paramètre où, en fait, seule la largeur pose 'problème' par rapport aux
écrans classiques.

Ma question : Y a-t-il un moyen via VBA de reconnaître le format d'écran ?
C'est juste pour info. Les applis en prod continueront à fonctionner
telles que avec les dimensions de usf définis par Ht, Lg,lg,Top ...

Merci de vos suggestions, commentaires ( .... même désagréables )
Pounet95



Avatar
Youky
Bonsoir,

Application.WindowState = xlMaximized
x = Application.UsableWidth
If x > 800 Then
MsgBox "resolution > 1024"
Exit Sub
End If
If x > 650 Then
MsgBox "1024x768"
Exit Sub
End If
MsgBox "800x600"
Bon !!! ...cette macro n'a pas la précision de celle de Laurent Longre
C'est juste pour donner une idée, car sur mes 2 postes ils indiquent des
chiffres différents mais on en est pas loin
A tester et voir pour zoomer
Youky
"Pounet95" a écrit dans le message de news:

Bonjour à toutes et tous,
Excel2000 sous Windows2000, Excel 2007 sous Vista ( Trial )

Je viens d'être équipé d'un PC portable dont l'écran est (je crois car je
n'ai aucune doc sur le matériel mis à dispo par le Service Informatique )
au format 16/9.

Jusqu'à ce jour je 'développais' des applis maison sans tenir compte de ce
paramètre où, en fait, seule la largeur pose 'problème' par rapport aux
écrans classiques.

Ma question : Y a-t-il un moyen via VBA de reconnaître le format d'écran ?
C'est juste pour info. Les applis en prod continueront à fonctionner
telles que avec les dimensions de usf définis par Ht, Lg,lg,Top ...

Merci de vos suggestions, commentaires ( .... même désagréables )
Pounet95



Avatar
JB
Bonsoir,

Api trouvé avec Google:

Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long)
As Long
Sub ecran()
MsgBox GetSystemMetrics(0)
MsgBox GetSystemMetrics(1)
End Sub

JB

On 15 jan, 16:38, "Pounet95" wrote:
Bonjour à toutes et tous,
Excel2000 sous Windows2000, Excel 2007 sous Vista ( Trial )

Je viens d'être équipé d'un PC portable dont l'écran est (je crois car je
n'ai aucune doc sur le matériel mis à dispo par le Service Informatiqu e ) au
format 16/9.

Jusqu'à ce jour je 'développais' des applis maison sans tenir compte d e ce
paramètre où, en fait, seule la largeur pose 'problème' par rapport aux
écrans classiques.

Ma question : Y a-t-il un moyen via VBA de reconnaître le format d'écr an ?
C'est juste pour info. Les applis en prod continueront à fonctionner tel les
que avec les dimensions de usf définis par Ht, Lg,lg,Top ...

Merci  de vos suggestions, commentaires ( .... même désagréables )
Pounet95


Avatar
Pounet95
Bonsoir,
Merci à vous trois pour vos réponses qui m'amènent à me poser la question
de savoir quel rapport il y a entre taille écran et résolution alors qu'il
me semblait que la résolution était plutôt fonction de la qualité de l'écran
et surtout de la carte graphique.
Je vais tenter de trouver des réponses du côté des "spécialistes matériel".
Si j'ai des précisions, je vous dis
Bonne nuit
Pounet95

"Pounet95" a écrit dans le message de
news:
Bonjour à toutes et tous,
Excel2000 sous Windows2000, Excel 2007 sous Vista ( Trial )

Je viens d'être équipé d'un PC portable dont l'écran est (je crois car je
n'ai aucune doc sur le matériel mis à dispo par le Service Informatique )
au format 16/9.

Jusqu'à ce jour je 'développais' des applis maison sans tenir compte de ce
paramètre où, en fait, seule la largeur pose 'problème' par rapport aux
écrans classiques.

Ma question : Y a-t-il un moyen via VBA de reconnaître le format d'écran ?
C'est juste pour info. Les applis en prod continueront à fonctionner
telles que avec les dimensions de usf définis par Ht, Lg,lg,Top ...

Merci de vos suggestions, commentaires ( .... même désagréables )
Pounet95