Grandeur UserForm
Résolu/Fermé
A voir également:
- Combien de photos de 1 mo peut-on mettre sur une clé de 1 go (ordre de grandeur) ?
- Clé de produit windows 10 gratuit - Guide
- Partage de photos - Guide
- Combien de mo dans 1 go ✓ - Forum Matériel & Système
- 1 go combien de photos ✓ - Forum Photo numérique
- 1gb vaut combien de photos ? - Forum TV & Vidéo
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
15 sept. 2014 à 08:43
15 sept. 2014 à 08:43
Bonjour,
Tu as la possibilité de dimensionner ton UserForm en plein écran.
Une seconde solution est de le dimensionner en utilisant certaines constantes (largeur et hauteur d'écran), solution plus délicate et plus compliquée à mettre en place.
A voir ce que tu préfères.
Tu as la possibilité de dimensionner ton UserForm en plein écran.
Une seconde solution est de le dimensionner en utilisant certaines constantes (largeur et hauteur d'écran), solution plus délicate et plus compliquée à mettre en place.
A voir ce que tu préfères.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
Modifié par pijaku le 15/09/2014 à 16:35
Modifié par pijaku le 15/09/2014 à 16:35
En fait, pour agrandir ou diminuer la taille d'un UserForm, il faut "jouer" avec ses propriétés Width et Height.
Pour mettre un UserForm en "plein écran", il te faut deux choses :
1- mettre l'application (ici Excel) en format Plein écran
2- compléter les propriétés Width et Height de ton UserForm en leur donnant les valeus de largeur et de hauteur de l'application.
En code, à l'initialisation de l'UserForm, cela donne ceci :
Et voici un exemple de dimensionnement en fonction de la résolution d'écran.
Ce code est d'UcFoutu, collègue de chez CodeS-Sources :
Cordialement,
Franck
Pour mettre un UserForm en "plein écran", il te faut deux choses :
1- mettre l'application (ici Excel) en format Plein écran
2- compléter les propriétés Width et Height de ton UserForm en leur donnant les valeus de largeur et de hauteur de l'application.
En code, à l'initialisation de l'UserForm, cela donne ceci :
Private Sub UserForm_Initialize() Application.WindowState = xlMaximized UserForm1.Width = Application.Width UserForm1.Height = Application.Height End Sub
Et voici un exemple de dimensionnement en fonction de la résolution d'écran.
Ce code est d'UcFoutu, collègue de chez CodeS-Sources :
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long Private Const HWND_DESKTOP As Long = 0 Private Const LOGPIXELSX As Long = 88 Private Const LOGPIXELSY As Long = 90 '*************** A ADAPTER ******************** Const RH As Integer = 1680 '====>> La résolution horizontale du pc de création Const RV As Integer = 1050 '====>> La résolution verticale du pc de création '************************************************ Private Sub UserForm_Initialize() Dim hwnd As Long, Style As Long, larg As Single, X As Integer, Y As Integer Dim coefx As Single, coefy As Single Dim lngDC As Long, tppx As Integer, tppy As Integer lngDC = GetDC(HWND_DESKTOP) ' ton écran tppx = 1440& / GetDeviceCaps(lngDC, LOGPIXELSX) ' nombre de twips par pixel horizontalement tppy = 1440& / GetDeviceCaps(lngDC, LOGPIXELSY) ' nombre de twips par pixel verticalement ReleaseDC HWND_DESKTOP, lngDC ' on libère la mémoire coefx = GetSystemMetrics(0) / RH coefy = GetSystemMetrics(1) / RV coef = IIf(coefx >= coefy, coefx, coefy) If coef < 0.96 Then coef = coef * (GetSystemMetrics(1) / (GetSystemMetrics(0)) * (RH / RV) * 0.8) End If Me.Width = Me.Width * coef Me.Height = Me.Height * coef Me.Left = (GetSystemMetrics(0) / (20 / tppx) - Me.Width) / 2 Me.Top = (GetSystemMetrics(1) / (20 / tppy) - Me.Height) / 2 End Sub
Cordialement,
Franck
pijaku,
Dans un premier temps, je te suis sincérement reconnaissant pour ce que tu as mis ci-dessus.
Car les infos tu m'en as donnés.
Et en faire plus, c'est faire ma macro :-)
Donc merci à toi, je ne marque pas encore cette question comme résolut, car je veux prendre connaissance correctement de ce que tu as pris la peine de me donner. Une fois cela fait, c'est avec grand plaisir que je ferai le nécessaire pour clore cette question.
Un grand merci à toi pijaku
Dans un premier temps, je te suis sincérement reconnaissant pour ce que tu as mis ci-dessus.
Car les infos tu m'en as donnés.
Et en faire plus, c'est faire ma macro :-)
Donc merci à toi, je ne marque pas encore cette question comme résolut, car je veux prendre connaissance correctement de ce que tu as pris la peine de me donner. Une fois cela fait, c'est avec grand plaisir que je ferai le nécessaire pour clore cette question.
Un grand merci à toi pijaku
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
16 sept. 2014 à 08:34
16 sept. 2014 à 08:34
Salut,
Pas de souci.
Prend ton temps.
Juste pour ton information, dans le second exemple, la première partie du code sert à calculer le coefficient par lequel multiplier la largeur et la hauteur de ton Userform, mais également de tous tes contrôles. Attention également de penser à régler, pour chacun des contrôles, les propriétés Left et Top. En cas de souci, demande...
Pas de souci.
Prend ton temps.
Juste pour ton information, dans le second exemple, la première partie du code sert à calculer le coefficient par lequel multiplier la largeur et la hauteur de ton Userform, mais également de tous tes contrôles. Attention également de penser à régler, pour chacun des contrôles, les propriétés Left et Top. En cas de souci, demande...
Private Sub UserForm_Initialize() Dim hwnd As Long, Style As Long, larg As Single, X As Integer, Y As Integer Dim coefx As Single, coefy As Single Dim lngDC As Long, tppx As Integer, tppy As Integer '************ CALCUL DU COEFFICIENT lngDC = GetDC(HWND_DESKTOP) ' ton écran tppx = 1440& / GetDeviceCaps(lngDC, LOGPIXELSX) ' nombre de twips par pixel horizontalement tppy = 1440& / GetDeviceCaps(lngDC, LOGPIXELSY) ' nombre de twips par pixel verticalement ReleaseDC HWND_DESKTOP, lngDC ' on libère la mémoire coefx = GetSystemMetrics(0) / RH coefy = GetSystemMetrics(1) / RV coef = IIf(coefx >= coefy, coefx, coefy) If coef < 0.96 Then coef = coef * (GetSystemMetrics(1) / (GetSystemMetrics(0)) * (RH / RV) * 0.8) End If '************* REGLAGE DES PROPRIETES Width et Height en fonction du coeff Me.Width = Me.Width * coef Me.Height = Me.Height * coef Me.Left = (GetSystemMetrics(0) / (20 / tppx) - Me.Width) / 2 Me.Top = (GetSystemMetrics(1) / (20 / tppy) - Me.Height) / 2 End Sub
15 sept. 2014 à 15:55
Merci pour avoir pris du temps de me lire et de me répondre.
Peux-tu me dire si c'est au niveau des paramètres de l'userform que cela se décide et si oui, sous quelle instructions( paramètres) je dois jouer. Car à part prendre les uns après les autres les différents paramètres possibles, je n'ai aucune idée ou je dois travailler.
Merci à toi,