UserForm centré en plein écran

Le
Philippe Meresse
Bonjour à toutes et tous,
J'ai créé un UserForm que je souhaites voir s'ouvrir en plein écran quel
qu'en soit la résolution et que les éléments qui s'y trouvent soient centrés
et dimensionnés en proportion.
J'ai écumé pas mal de sites dont excelabo mais je ne sais utiliser les
exemples pour mon besoin que vous trouverez en lien.
Je mets cela sur mes maigres connaissance en VBA (depuis longtemps sur cette
liste mais utilisateur que trop rarement).
Pour l'instant il s'ouvre bien en plein écran en recouvrant Excel (mais
seulement si celui ci est en plein écran) mais n'est pas centré (en haut à
gauche).

http://cjoint.com/?0menMUWACNa

Si quelqu'un d'entre vous savait modifier mon doc je lui serait
éternellement reconnaissant ;-).

Déjà merci

Philippe Meresse

PS: seconde question sur même doc dans un autre poste
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #22881061
Bonjour,

Colle ce qui suit dans un module standard et
exécute la procédure : Afficher_Plein_écran


Option Explicit

Private Const LOGPIXELSX = 88 ' Logical pixels/inch in X
Private Const LOGPIXELSY = 90 ' Logical pixels/inch in Y
Private Const HORZRES = 8 ' Horizontal width in pixels
Private Const VERTRES = 10 ' Vertical width in pixels
Private Const TWIPSPERINCH = 1440

Private Declare Function GetDeviceCaps Lib "gdi32" ( _
ByVal hDc As Long, ByVal nIndex As Long) As Long

Private Declare Function ReleaseDC Lib "user32" ( _
ByVal hwnd As Long, ByVal hDc As Long) As Long

Private Declare Function GetDC Lib "user32" ( _
ByVal hwnd As Long) As Long

Public Sub usbGetFormSize(ByRef x As Variant, ByRef y As Variant)

Dim hDc As Long, lngRetVal As Long
Dim varScreenX As Variant, varScreenY As Variant
Dim varPixToInchX As Variant, varPixToInchY As Variant

hDc = GetDC(0)

'Dimension de l'écran en pixels pour X & Y
varScreenX = GetDeviceCaps(hDc, HORZRES) 'Horizontal
varScreenY = GetDeviceCaps(hDc, VERTRES) 'Vertical

'Fait la conversion des pixels/pouces pour X & Y
varPixToInchX = GetDeviceCaps(hDc, LOGPIXELSX)
varPixToInchY = GetDeviceCaps(hDc, LOGPIXELSY)

lngRetVal = ReleaseDC(0, hDc)

'Conversion en Points.
x = (varScreenX / varPixToInchX) * 72
y = (varScreenY / varPixToInchY) * 72

End Sub

'----------------------------------------
Sub Afficher_Plein_écran()
'Afficher le formulaire plein écran
Dim x As Variant, y As Variant

usbGetFormSize x, y
Load UserForm1
With UserForm1
.Top = 0
.Left = 0
.Width = x
.Height = y
End With
UserForm1.Show
End Sub
'----------------------------------------


MichD
--------------------------------------------
"Philippe Meresse" a écrit dans le message de groupe de discussion : 4cfa3a44$0$7700$

Bonjour à toutes et tous,
J'ai créé un UserForm que je souhaites voir s'ouvrir en plein écran quel
qu'en soit la résolution et que les éléments qui s'y trouvent soient centrés
et dimensionnés en proportion.
J'ai écumé pas mal de sites dont excelabo mais je ne sais utiliser les
exemples pour mon besoin que vous trouverez en lien.
Je mets cela sur mes maigres connaissance en VBA (depuis longtemps sur cette
liste mais utilisateur que trop rarement).
Pour l'instant il s'ouvre bien en plein écran en recouvrant Excel (mais
seulement si celui ci est en plein écran) mais n'est pas centré (en haut à
gauche).

http://cjoint.com/?0menMUWACNa

Si quelqu'un d'entre vous savait modifier mon doc je lui serait
éternellement reconnaissant ;-).

Déjà merci

Philippe Meresse

PS: seconde question sur même doc dans un autre poste
Philippe Meresse
Le #22882951
Bonsoir,
merci pour cette rapide réponse.
ç'a marche pour la mise en plein écran et visiblement pour le
redimensionnement des éléments (textBox, combobox, etc.....).
Problème tout de même c'est que le tout n'est pas centré dans l'écran.

Philippe

"michdenis" a écrit dans le message de groupe de discussion :
idde7m$a95$

Bonjour,

Colle ce qui suit dans un module standard et
exécute la procédure : Afficher_Plein_écran


Option Explicit

Private Const LOGPIXELSX = 88 ' Logical pixels/inch in X
Private Const LOGPIXELSY = 90 ' Logical pixels/inch in Y
Private Const HORZRES = 8 ' Horizontal width in pixels
Private Const VERTRES = 10 ' Vertical width in pixels
Private Const TWIPSPERINCH = 1440
michdenis
Le #22884011
Regarde ce qui suit : http://cjoint.com/?0mffJn5ZxBo

J'ai complété l'exemple et donné quelques explications...

Il faut cependant se rappeler que c'est un forum d'entraide
Je ne suis pas sûr que j'aide beaucoup ton apprentissage
en faisant le boulot presque totalement !!!
Eh oui, des fois ça peut prendre plusieurs heures avant
d'obtenir le résultat désiré... c'est une partie inhérente
du travail et de l'apprentissage.



MichD
--------------------------------------------
"Philippe Meresse" a écrit dans le message de groupe de discussion : 4cfa9d26$0$7707$

Bonsoir,
merci pour cette rapide réponse.
ç'a marche pour la mise en plein écran et visiblement pour le
redimensionnement des éléments (textBox, combobox, etc.....).
Problème tout de même c'est que le tout n'est pas centré dans l'écran.

Philippe

"michdenis" a écrit dans le message de groupe de discussion :
idde7m$a95$

Bonjour,

Colle ce qui suit dans un module standard et
exécute la procédure : Afficher_Plein_écran


Option Explicit

Private Const LOGPIXELSX = 88 ' Logical pixels/inch in X
Private Const LOGPIXELSY = 90 ' Logical pixels/inch in Y
Private Const HORZRES = 8 ' Horizontal width in pixels
Private Const VERTRES = 10 ' Vertical width in pixels
Private Const TWIPSPERINCH = 1440
Philippe Meresse
Le #22885711
Bonjour,
Merci pour l'envoi.
Je comprends et je prends note de ta remarque mais crois moi j'avais déjà
passé bc de temps en essais proche du résultat.
L'aide de la liste de discussion est encore indispensable pour moi car bien
que venant depuis quelques années et ayant fait quelque réalisations
intéressantes (pour mon petit niveau de débutant) c'est à chaque fois espacé
de longs mois sans ouvrir Excel et j'oublie ;-(
@ Bientôt,
Philippe M

"michdenis" a écrit dans le message de groupe de discussion :
idf56h$lm2$

Regarde ce qui suit : http://cjoint.com/?0mffJn5ZxBo

J'ai complété l'exemple et donné quelques explications...

Il faut cependant se rappeler que c'est un forum d'entraide
Je ne suis pas sûr que j'aide beaucoup ton apprentissage
en faisant le boulot presque totalement !!!
Eh oui, des fois ça peut prendre plusieurs heures avant
d'obtenir le résultat désiré... c'est une partie inhérente
du travail et de l'apprentissage.



MichD
--------------------------------------------
Publicité
Poster une réponse
Anonyme