OVH Cloud OVH Cloud

userform + résolution

2 réponses
Avatar
DENIS
Cher tous,

J'ai un userform 1 dans lesquel je peux ouvrir Userform2.
le probl=E8me est que certains sont en 1024*768 et d'autres=20
en 800*600. Bien =E9videmment, en 1024x768 c'est tr=E8s bien=20
mais ceux qui sont en 800*600 n'ont pas l'userform2 qui=20
s'ouvre au bon endroit.

j'ai pens=E9 =E0 un truc comme :=20
***si r=E9solution 1024x768 alors :
With UserForm2
.StartUpPosition =3D 0
.Left =3D Application.UsableWidth - 500
.Top =3D Application.UsableHeight - 220
End With
***si r=E9solution =3D 800*600 alors
With UserForm2
.StartUpPosition =3D 0
.Left =3D Application.UsableWidth - 700
.Top =3D Application.UsableHeight - 420
End With

Comment peut-on traduire tout cela ?

Merci=20
Denis

2 réponses

Avatar
Corona
Bonjour Denis,
Ce code pondu par Laurent Longre et qui te donne la résolution de ton
écran, pourra certainement t'aider.
Philippe
**********************************************************************
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

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


"DENIS" a écrit dans le message de
news: 2d3a01c5047a$9a78b3d0$
Cher tous,

J'ai un userform 1 dans lesquel je peux ouvrir Userform2.
le problème est que certains sont en 1024*768 et d'autres
en 800*600. Bien évidemment, en 1024x768 c'est très bien
mais ceux qui sont en 800*600 n'ont pas l'userform2 qui
s'ouvre au bon endroit.

j'ai pensé à un truc comme :
***si résolution 1024x768 alors :
With UserForm2
.StartUpPosition = 0
.Left = Application.UsableWidth - 500
.Top = Application.UsableHeight - 220
End With
***si résolution = 800*600 alors
With UserForm2
.StartUpPosition = 0
.Left = Application.UsableWidth - 700
.Top = Application.UsableHeight - 420
End With

Comment peut-on traduire tout cela ?

Merci
Denis
Avatar
Michel Pierron
Bonsoir DENIS;
Private Declare Function GetSystemMetrics& Lib "user32" (ByVal nIndex&)

With UserForm2
.StartUpPosition = 0
Select Case GetSystemMetrics(0)
Case 1024
.Left = Application.UsableWidth - 500
.Top = Application.UsableHeight - 220
Case 800
.Left = Application.UsableWidth - 700
.Top = Application.UsableHeight - 42
End Select
End With

MP

"DENIS" a écrit dans le message de
news:2d3a01c5047a$9a78b3d0$
Cher tous,

J'ai un userform 1 dans lesquel je peux ouvrir Userform2.
le problème est que certains sont en 1024*768 et d'autres
en 800*600. Bien évidemment, en 1024x768 c'est très bien
mais ceux qui sont en 800*600 n'ont pas l'userform2 qui
s'ouvre au bon endroit.

j'ai pensé à un truc comme :
***si résolution 1024x768 alors :
With UserForm2
.StartUpPosition = 0
.Left = Application.UsableWidth - 500
.Top = Application.UsableHeight - 220
End With
***si résolution = 800*600 alors
With UserForm2
.StartUpPosition = 0
.Left = Application.UsableWidth - 700
.Top = Application.UsableHeight - 420
End With

Comment peut-on traduire tout cela ?

Merci
Denis