Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.

Merci par avance.
 

Pièces jointes

  • VBA Multiple 2 Moniteurs Screens Écrans.xlsm
    35.4 KB · Affichages: 14
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...

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Bouton 1 : LxH des moniteurs n'affiche pas les bonnes valeurs, ça affiche 1440x810 au lieu de 1920x1080.
Le reste est bon.

Bouton 2 : parfait.

Bouton 3 : ne marche pas : le Userform s'affiche sur le même moniteur qu'Excel.
 

TooFatBoy

XLDnaute Barbatruc
Les dimensions sont en points donc en principe 1440 x 810 points c'est 2400 x 1350 pixels.
Ah oui, pardon, ce sont des "points" et non des pixels.
Pour info, j'ai deux moniteurs de 1920x1080 (pixels, évidemment )

Tu as cette dimension 1440 x 810 sous quelle titre ?
Comme je l'ai dit, c'est pour "LxH" des moniteurs.
Mais pour être plus précis, c'est pour chacune des deux lignes, donc chacun des deux moniteurs.



Oups, il y a un truc que je n'avais pas vu au départ : quand Excel est sur l'écran primaire ça affiche "vrai"

mais quand il est sur l'écran secondaire ça n'affiche rien (ni "vrai" ni "faux").
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Pour info, j'ai deux moniteurs de 1920x1080 (pixels, évidemment )
Alors c'est étrange que ça retourne 1440 x 810 points par moniteur car c'est 2400 x 1350 pixels.
Y a un truc étrange. Car moi aussi j'ai un 1920 x 1080 pixels et j'ai bien 1152 x 648 points.
Tu es sûr de tes paramètres d'affichage (sur le bureau, clic droit, paramètres d'affichage) ?
 

Dudu2

XLDnaute Barbatruc
Oui, t'inquiète, ça je connais.
Oui, bien sûr ! Alors je comprends pas du tout pourquoi tes chiffres sont aussi élevés à 1440 x 810.
Version corrigée du fichier. Tu peux refaire un screenshot des valeurs STP ?
 

Pièces jointes

  • VBA Multiple 2 Moniteurs Screens Écrans.xlsm
    36.1 KB · Affichages: 3

Dudu2

XLDnaute Barbatruc
Merci ! Ok, compris. Le nombre de pixels par point de 1,33333 n'est pas du tout celui que je croyais standard de 1,666666. Donc c'est bon !
Maintenant je vais essayer de comprendre pourquoi ça:
Bouton 3 : ne marche pas : le Userform s'affiche sur le même moniteur qu'Excel.
Je dois rater quelque chose...
 

Dudu2

XLDnaute Barbatruc
Retour sur l'affaire...
Mon fichier était archi-faux puisque la bonne macro n'était pas affectée au 3ème bouton.
Ça risquait pas de fonctionner.
@TooFatBoy, peux-tu ré-essayer STP ?
 

Pièces jointes

  • VBA Multiple 2 Moniteurs Screens Écrans.xlsm
    37.5 KB · Affichages: 4

TooFatBoy

XLDnaute Barbatruc
C'est marrant, quand la fenêtre d'Excel est à cheval sur les deux écrans : le Userform s'affiche sur le moniteur qui comporte la plus grande partie de ladite fenêtre.

En revanche, ici, il faut que la fenêtre d'Excel soit 100 % sur le moniteur secondaire (à droite du primaire) pour voir "Vrai", sinon on voit "Faux" pour la dernière ligne.
 

Dudu2

XLDnaute Barbatruc
En revanche, ici, il faut que la fenêtre d'Excel soit 100 % sur le moniteur secondaire (à droite du primaire) pour voir "Vrai", sinon on voit "Faux" pour la dernière ligne
Oui, parce que j'ai testé le .Left de la fenêtre Excel. C'est lui qui détermine (pour ce code) si elle est en primaire ou secondaire.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…