RESOLU par ROLAND UserForm affichage selon taille écran (pas plein écran)

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Me revoilà ayant besoin de vos lumières.

J'ai encore un souci. Cette fois-ci, c'est un problème d'affichage UserForm selon la taille de l'écran sur lequel s'ouvre le classeur.

Malgré mes recherches, je n'ai pas trouvé de solution.

Voici mon petit exposé de la chose :

je travaille "en ligne" avec des commerciaux qui utilisent chacun un classeur excel.
Ce fichier qui leur est attribué, est le même pour tous (j'ai copié en plusieurs exemplaires mon classeur "matrice").

Dans ce classeur, j'ai une cinquantaine d'UserForm qui doivent s'afficher à un endroit précis de l'écran pour être optimums en lecture, par rapport à d'autres informations contenues dans l'onglet.

Sur mon écran ordinateur de bureau qui plus est un grand écran, voici comment ça s'affiche :

UF Ecran ordi de bureau.jpg
c'est le bon affichage et au bon endroit.

Sur un ordi portable par exemple (autre taille d'écran) voici comment ça s'affiche :

UF portable.jpg

Quelle que soit la taille d'écran d'affichage, j'ai besoin, comme le fait windows pour l'affichage en général, que mes UserForm soient réduits de la même manière afin qu'il soient positionnés au même endroit que sur mon écran ordi de bureau.

Dans les propriétés UserForm, j'ai pas trouvé et je n'ai pas trouvé en recherchant sur le net.

Si vous pouviez m'aider, peut-être ai-je mal vu dans les propriétés UserForm .... ou peut-être par macro ?

Vous remerciant déjà de m'avoir lu en espérant avoir été "un peu" clair.

Je vous souhaite à toutes et à tous, une très bonne journée,
Amicalement,
Lionel,
 

Pièces jointes

  • UF Ecran ordi de bureau.jpg
    UF Ecran ordi de bureau.jpg
    25.7 KB · Affichages: 187
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : UserForm affichage selon taille écran (pas plein écran)

Bonjour Roland,

Merci de ta réponse mais LOL je ne sais même pas de quoi tu parles ça existe ces trucs ?
Je vais faire des recherches pour voir si je peux apprendre comment ça marche.

En core merci,

Bonne fin de journée,
Amicalement,
Lionel,
 

Roland_M

XLDnaute Barbatruc
Re : UserForm affichage selon taille écran (pas plein écran)

re

un exemple simple pour mettre l'userf en plein écran

Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Left = 0: Me.Top = 0
Me.Width = Application.Width
Me.Height = Application.Height - 25 'pour la barre des tâches
End Sub
 

Roland_M

XLDnaute Barbatruc
Re : UserForm affichage selon taille écran (pas plein écran)

re

un autre exemple pour centrer, juste pour t'expliquer car il y a Me.StartUpPosition = 2 pour centrer

Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Left = (Application.Width - Me.Width) / 2
Me.Top = (Application.Height - Me.Height) / 2
End Sub

pour l'aide dans la fenêtre vb en haut à droite tu tapes UsableHeight et tu auras l'aide !
ou tu sélectionnes dans le code UsableHeight et tu tapes F1
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : UserForm affichage selon taille écran (pas plein écran)

Mais en fait, je ne veux pas centrer mais que mes UserForm (y en a 50) apparaissent exactement à la même position que sur l'image :
UF Ecran ordi de bureau.jpg
Quelle que soit la taille de l'écran sur lequel ils s'affichent.
Mais je pense qu'à partir de tes macros, je pourrai faire le bon réglage ?

Merci Roland,
Amicalement,
Lionel,
 

Pièces jointes

  • UF Ecran ordi de bureau.jpg
    UF Ecran ordi de bureau.jpg
    25.7 KB · Affichages: 81

Roland_M

XLDnaute Barbatruc
Re : UserForm affichage selon taille écran (pas plein écran)

re

voir avec ceci dans Private Sub UserForm_Initialize()

Code:
'position en bas à droite
Private Sub UserForm_Initialize()
LargUser@ = Me.Width: HautUser@ = Me.Height
'avec Win7 Excel2007 voir réglage !? il y a les API très précis mais j'évite pour la compatibilité
LargScr% = Application.Width - 14: HautScr% = Application.Height - 14
Me.StartUpPosition = 0 'pour placer manuellement
PosTop% = HautScr - HautUser: If PosTop < 0 Then PosTop = 0
PosLeft% = LargScr - LargUser: If PosLeft < 0 Then PosLeft = 0
Me.Top = PosTop
Me.Left = PosLeft
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 734
Messages
2 082 020
Membres
101 872
dernier inscrit
Colin T