Position de Userform à l'affichage selon la taille de l'écran

scoobytor

XLDnaute Nouveau
Bonjour à tous,

Dans mon fichier, j'utilise une Userform que je veux faire apparaître à droite de l'écran (et reste à l'écran) quelque soit la taille de l'écran de l'utilisateur (certains ont des ordis fixes avec écran large de 30 cm et d'autres ordis portables en 16/9 large de 23 cm) juste à côté des barres de défilement verticale (cf photos).

Comment faire ?

J'ai déjà essayé par l'option " StartUpPosition " de la Userform, mais le 3 - Windows Default me la met en haut à gauche et le 0- Manual me la place en fonction des valeurs saisies dans "Left" et "Top" (donc pas au bon endroit en fonction de la largeur de l'écran).

Peut-être une solution détournée en intégrant un menu personnaliser dans la barre des menus, mais là je ne sais pas comment faire.

Merci d'avance pour vos solutions.
 

Pièces jointes

  • Posistion Userform.jpg
    Posistion Userform.jpg
    133.1 KB · Affichages: 355
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Position de Userform à l'affichage selon la taille de l'écran

Bonjour scoobytor,

Avec Left et Top, en fonction de la résolution d'écran et d'un calcul savant, ça devrait être possible, non ?

Dans un module

[FONT=Times New Roman, Times, serif][FONT=Courier New, Courier, mono]Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Sub AfficherResolution()
Largeur = GetSystemMetrics(0)
Hauteur = GetSystemMetrics(1)
MsgBox "La résolution de votre écran est de " & Largeur & " par " & Hauteur
End Sub
[/FONT][/FONT]

source : VBA
 

JNP

XLDnaute Barbatruc
Re : Position de Userform à l'affichage selon la taille de l'écran

Bonjour le fil :),
Le plus économique pour permettre aux gens d'avoir une bonne visibilté serait de programmer le ruban 2007 :rolleyes:...
Si tu fais une recherche sur le forum, il y a pas mal de conseil et de liens vers des tutos :p !
Bon courage :cool:
 

scoobytor

XLDnaute Nouveau
Re : Position de Userform à l'affichage selon la taille de l'écran

Bonjour Tototiti, JNP et Yann - 56,

Je vais utiliser la solution de Yann-56 qui correspond à 100% à mon attente , solution qui peut d'ailleurs être adaptée pour un positionnement par rapport au bas de l'écran. Dans mon cas je l'ai associé à l'ouverture de l'onglet :

pour positionner par rapport à la droite : il suffit de fixer une fois pour toute les valeurs (39 et 32 ici pour moi)

Private Sub Worksheet_Activate()
With U2 'Name de la Userform
.Top = 39
.Left = Application.Width - (.Width + 32)
.Show False
End With
End Sub

pour positionner par rapport au bas : il suffit de fixer une fois pour toute les valeurs (50 et 0 ici pour moi)

Private Sub Worksheet_Activate()
With U1 'Name de la Userform
.Top = Application.Height - (.Height + 50)
.Left = 0
.Show False
End With
End Sub

Test effectué sur 3 écrans de taille diférentes : 100% à la place voulue.

Encore un grand merci à vous et j'irai quand même voir du côté du ruban 2007, deux solutions valent mieux qu'une.
 

Pièces jointes

  • Position userform à partir du bas.jpg
    Position userform à partir du bas.jpg
    131.4 KB · Affichages: 371
Dernière édition:

Discussions similaires

  • Résolu(e)
Microsoft 365 Taille UserForm
Réponses
3
Affichages
355

Statistiques des forums

Discussions
312 322
Messages
2 087 289
Membres
103 508
dernier inscrit
max5554