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

XL 2016 affichage userform avec 2 ou + ecrans

  • Initiateur de la discussion Initiateur de la discussion roby
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

roby

XLDnaute Occasionnel
Bonjour le forum,

Lorsqu'on lance un fichier Excel sur un poste avec plusieurs écrans, à chaque fois les userform s'affichent sur un autre écran que l'écran ou est affiché excel.
y a-t-il une parade pour que cet userform s'affiche dans la même fenêtre que excel ?

je joint le même fichier solutionné dernièrement pour le test.

Merci encore.
 

Pièces jointes

Re bonjour,
J'avais un code qui pouvait positionner une image en fonction de coordonnées (Cellule) et même faire du redimensionnement.
J'ai voulu voir ce que cela donnerait avec un UserForm
Voici le résultat. Peux être quelque chose a creuser de ce côté mais bon !!!!!

Edit : J'avais oublié la partie photo pour voir aussi le positionnement
@+ Lolote83
 

Pièces jointes

Dernière édition:
Ah ! Et j'ai oublié de signaler les problèmes issus des variations des marges des UserForms avec les versions d'Office (et de Windows ?).
Je me suis coltiné ce problème (avec @patricktoulon) avant pour pouvoir positionner un UserForm sur un Objet (voir cette Ressource).

En Windows 10+ (et aussi en Windows 8, pour les autres je ne sais pas) il y a des marges non visibles au UserForm. C'est à dire que si on le place en (0, 0) de l'écran, il semble ne pas y être précisément.
En fait il y est très précisément, mais ces foutues marges donnent l'impression visuelle qu'il n'y est pas.


Pour Windows 10+, j'ai géré ces marges dans la ressource mentionnée et dans les fonctions de positionnement de ce code en les retirant pour avoir un positionnement visuel au plus précis. Le résultat est qu'en position (0, 0), le UserForm est bien au coin haut gauche visuellement, mais ses coordonnées ont été corrigées des marges invisibles et donc négatives.


Je vous l'avais dit, ce n'est pas simple ! En fait ce n'est pas simple du tout !
 
Dernière édition:
@Lolote83,
Avec ce dernier fichier où j'ai ajouté l'affichage du RECT de la fenêtre Excel...
Pourrais-tu STP passer Excel dans l'écran secondaire en réduisant un peu sa fenêtre pour qu'il n'occupe pas tout l'écran, puis appuyer sur le bouton: et voir si les valeurs de sont cohérentes avec celles du Moniteur secondaire ?
Faire une capture d'écran ici aussi. Merci.
Enfin tous ceux qui veulent essayer sont les bienvenus 🙂
 
Dernière édition:
Bon, pas de retour . Ça n'intéresse plus personne ?

Entre-temps j'ai progressé et simplifié. On peut quand même positionner le UserForm:
- Sur le Moniteur primaire ou secondaire en relatif (ratios V & H) ou en absolu (.Left & .Top en Points):
- En se basant sur une zone de référence qui est au choix:
> L'Écran (pas tellement d'intérêt car le UserForm ne peut être devant la Barre des Tâches)
> La Work Area (Écran moins Barre des Tâches, la référence de base)
> La fenêtre Excel
VB:
'--------------------------------------------------------
'List of functions (Check comments for parametres values)
'--------------------------------------------------------
' CountOfMonitors
' ExcelWindowMonitorNumber()
' PlaceUserFormInMonitor()
' GetMonitorRECT()
' GetWorkRECT()
' GetTaskBarRECT()
' GetExcelClientWindowRECT()
' PixelsToPointsX()
' PixelsToPointsY()
 

Pièces jointes

Dernière édition:
Bonjour @Dudu2 ,
Voici donc une copie d'écran sur écran secondaire avec Excel pas en plein écran
Bouton Display Monitor


Bouton UserForm
Un formulaire se déplace diagonalement de gauche à droite sur écran principal (même si Excel est sur écran secondaire).
Fin du déplacement sur copie ci-dessous


Idem avec Excel en écran principal réduit sur fond Word en plein écran



Voilà les résultats
@+ Lolote83
 
Dernière édition:
Bonjour @Lolote83,
Et merci pour les tests. C'est tout bon.
J'ai quand même modifié le fichier du Post #25 pour faire s'envoler et atterrir le UserForm au travers des 2 écrans 🙂.
Tu as tout pour maîtriser tes moniteurs et la fenêtre Excel avec les fonctions GetxxxRECT, savoir dans quel moniteur se trouve la fenêtre Excel et éventuellement positionner un UserForm dans le moniteur de ton choix par rapport à la zone de ton choix (Écran, Work Area, Fenêtre Excel) soit en relatif (avec les ratios V & H) soit en absolu (grâce aux valeurs de RECT converties de Pixels en Points).
 
Dernière édition:
Re bonjour,
Merci @Dudu2,
C'est dans ma boite de sauvegarde.
Bravo pour le travail réalisé

Au fait, as tu regardé le post#21, ne pouvait-on rien faire du coté UserForm. Je ne suis pas assez compétent mais peut être quelqu'un y arriverait ?

A bientôt sur le forum
@+ Lolote83
 
Re bonjour @Dudu2,
Excuse moi si les explications ne sont pas claires.
Le code permet par exemple de positionner une image par rapport à l'angle supérieur gauche d'une cellule.
Donc, dans le fichier joint, si on clique sur le bouton "Positionnement sur cellule G4", l'image du papillon est donc positionnée par rapport à la cellule G4 et peu même être redimensionnée.
L'idée, puisque l'on parlait à l'origine de positionnement de Userform était de voir si on pouvait faire de même avec un UserForm. Mais a priori cela n'est pas concluant. C'était juste une idée.
C'est mieux expliqué maintenant ?
@+ Lolote83
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
46
Affichages
2 K
Réponses
5
Affichages
286
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…