XL 2016 VBA - 2 écrans - Positionner un UserForm dans le même ou l'autre écran par rapport à Excel

Dudu2

XLDnaute Barbatruc
Bonjour à tous,

Si quelqu'un possède 2 moniteurs, j'aimerais qu'il prenne quelques minutes pour tester les 3 boutons de ce programme et vérifier si ça fait ce que ça dit ou si ça part en live complet !
En prenant la peine de positionner la fenêtre Excel une fois dans le Moniteur primaire et une fois dans le Moniteur secondaire.
1658178684681.png

Merci par avance.
 

Pièces jointes

  • VBA Multiple 2 Moniteurs Screens Écrans.xlsm
    35.4 KB · Affichages: 15
Solution
@TooFatBoy,
Super, je crois qu'on peut dire qu'on a réussi ! Et c'est tout sauf simple !
Je dis "on" parce que sans ta config complètement bizarre et ton assiduité aux tests, rien n'aurait été possible.
Merci pour ton aide. Je reposte le fichier ici pour faire de ce post la solution.

Je rappelle la partie utile du bidule:
Dans le Module_UserFormMultipleScreens, 2 fonctions de positionnement UserForm:
- PlaceUserFormInExcelSameMonitor(Usf, Position)
- PlaceUserFormInExcelOtherMonitor(Usf, Position)

La position est une des constantes publiques déclarées dans le module en question:
VB:
Public Const PositionMiddle = "Middle"
Public Const PositionTopLeftCorner = "TopLeftCorner"
Public...

Dudu2

XLDnaute Barbatruc
J'aurais pu faire un calcul plus savant en combinant le (.Left + .Width) / 2 pour savoir où est la plus grande partie de la fenêtre Excel mais j'ai pris l'hypothèse que l'utilisateur ne place pas les fenêtres de ses applications au milieu des 2 écrans.
 

Dudu2

XLDnaute Barbatruc
Bonjour @TooFatBoy,
Je vais te demander un truc un peu spécial car l'utilisateur pour lequel j'ai fait cette manip a une configuration particulière qui met en défaut le positionnement du UserForm sur l'écran secondaire quand Excel est sur l'écran primaire.

Son écran secondaire a une résolution en largeur différente (le double) de la résolution de l'écran primaire.
Le UserForm du bouton #3 est décalé vers la droite comme si le positionnement ne tenait compte que de la résolution de l'écran primaire.

Bref...
Peux-tu changer la résolution en largeur de ton écran secondaire le temps d'un test en l'augmentant (voire en la doublant) et, Excel en écran primaire, déclencher le Bouton #3 et faire un screenshot de la position du UserForm dans l'écran secondaire.

Si tu ne peux pas j'essaierai de régler ça autrement, mais j'aimerais recouper les infos avec ton test.
 

TooFatBoy

XLDnaute Barbatruc
Peux-tu changer la résolution en largeur de ton écran secondaire le temps d'un test en l'augmentant (voire en la doublant) et, Excel en écran primaire, déclencher le Bouton #3 et faire un screenshot de la position du UserForm dans l'écran secondaire.
Hélas : voir #12 :(

J'ai un vieux moniteur dans mon sous-sol. Il faut que je trouve un cordon d'alim. et un cordon DVI/DVI (c'est pas gagné... et en plus pas le temps ce matin :().
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Dans le cas où l'écran secondaire n'a pas la même largeur en pixels que l'écran primaire, je confirme que pour positionner le UserForm au milieu de l'écran secondaire, il faut tenir compte non pas de sa largeur à lui, mais de celle de l'écran primaire.

Donc ce qui semblait implacablement logique:
VB:
Usf.Left = PrimaryMonitorWidth + (SecondaryMonitorWidth - Usf.Width) / 2
Doit être remplacé par cette incohérence logique peut-être liée à des re-calculs Excel masqués (?).
Code:
Usf.Left = PrimaryMonitorWidth + (PrimaryMonitorWidth - Usf.Width) / 2
En tous cas, c'est l'expérience qui le démontre. Alors...

J'ai donc à nouveau modifié le post #14 accordingly.
 

TooFatBoy

XLDnaute Barbatruc
Tout d'abord, le matos :
Écran primaire à droite : 3840x2160 pixels
Écran secondaire à gauche : 1920x1200 pixels



1- Excel sur écran primaire

Bouton 1 :
Excel-Primaire_Bouton1.png

Bouton 2 : Pas mal..
Petit bémol, mais probablement voulu : pour 4 et 5, les fenêtres ne sont pas tout à fait en bas. Il y a un petit espace entre la fenêtre et la barre des tâches.
De même, il y a un aussi petit espace, à gauche pour 4, à droite pour 5.

Excel-Primaire_option-4.png

Bouton 3 : je ne vois la fenêtre dans aucun des 5 cas..



2- Excel sur écran secondaire :

Bouton 1 :

Excel-Secondaire_Bouton1.png

Bouton 2 : la fenêtre ne s'affiche pas sur le même écran qu'Excel (elle s'affiche sur le primaire).
Mêmes constats qu'avec Excel sur l'écran primaire.


Bouton 3 : je ne vois la fenêtre dans aucun des 5 cas..
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 144
Messages
2 116 725
Membres
112 848
dernier inscrit
Sylvester K Pope