Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

  • Initiateur de la discussion Initiateur de la discussion Leskwal
  • 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 !

Leskwal

XLDnaute Occasionnel
Bonjour le forum

Une problématique qui me dépasse.

J'ai développé une petite application qui fait apparaitre un fond d'écran pour "cacher" provisoirement la feuille Excel et ce fond d'écran, avec la fonction LAYOUT, fait apparaitre un autre formulaire.

Cela marche parfaitement lorsqu'on fait tourner l'appli sur un écran unique mais en cas de 2 écrans ; sur l'écran où se trouve la feuille Excel, le fond apparait et sur le deuxième écran le formulaire. 😕

Franchement pas Top ... 😱

Pour illustrer mon propos j'ai créé un exemple qui fait apparaitre l'erreur, à condition que vous ayez 2 écrans 😛.

D'avance un GRAND MERCI pour une solution.

Pascal
 

Pièces jointes

Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Bonjour

je ne constate pas ça chez moi. Le fait de lancer le formulaire remet excel sur une seule fenêtre ce qui est attendu du fait de cet instruction dans ton code :
Application.WindowState = xlMaximized


Cela dit, je ne travaille jamais avec excel à cheval sur 2 écrans mais c'est lié au fait que mes deux écrans ne sont pas de la même taille (portable + grand écran).
Comment sont configurés tes écrans (en étendu ou en miroir ?)
 
Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Bonjour Misange

Merci pour ton intervention

Je suis dans une situation identique à la tienne.
Bureau étendu sur les 2 écrans de résolution légèrement différente. 😱
Je cherche de mon coté une solution mais, franchement, je lutte...

Pascal
 
Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Re à tous

Je viens de résoudre ' très momentanément" le problème.

J'explique :
ECRAN A et ECRAN B

J'ouvre le fichier Excel sur l'écran A

J'appelle l'interface VBA qui apparait sur l'ÉCRAN B.
Je déplace cette interface sur l'écran A je lance l'appli : CA MARCHE !! 😉

MAIS...

Je déplace la feuille EXCEL sur l'ÉCRAN B
Je lance l'appli : Le fond reste bien sur l'ÉCRAN B mais le formulaire lancé par "Layout" reste sur l’Écran A. ARRRGHHHHH 😡 😕😕😕😕

Une solution ? Une Raison ....

Que dire, sinon merci d'avance.

Pascal
 
Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Re,

La raison est que le fond se place en fonction de la fenêtre de l'application

Code:
UserForm_Fond_parametres.Left = 0
UserForm_Fond_parametres.Top = 0

Mais rien n'est précisé pour l'autre userform
Donc soit tu mets des lignes équivalentes pour le 2ème userform, soit tu places le 2ème en fonction de la position du premier, comme je te l'avais proposé
 
Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Bonjour tototiti2008

J'essaie ta proposition.

Je ne l'avais pas vu car je n'avais pas rafraichi XLD.

Un franc Merci à vous 2 et je vous recontacte au cas où ..😱

Bon WE


Pascal
 
Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Re,

Après test, il semble qu'il vaille mieux placer le Left du 2ème Userform en fonction du Left du premier que de les mettre à zéro, avec le 0 j'ai eu un comportement bizarre dans un cas
 
Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Re à tous

J'ai, je pense, bien compris,en théorie ta proposition

HTML:
Peut-être simplement définir le .Left du 2ème userform en fonction du . Left du premier ?

mais comment l'écrire, pour que le deuxième formulaire se centre au milieu du fond ? 😉

Merci
Pascal
 
Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Re,

J'ai dû changer la propriété StartupPosition du Userform_Parametrages à 0 - Manual
ensuite à l'initialisation du userform :

Code:
Me.Left = UserForm_Fond_parametres.Left + (UserForm_Fond_parametres.Width - Me.Width) / 2
Me.Top = UserForm_Fond_parametres.Top + (UserForm_Fond_parametres.Height - Me.Height) / 2

J'ai essayé aussi de juste mettre StartupPosition juste en CenterOwner ou Windows Default et ça ne donnait pas vraiment ce que tu voulais
 
Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Re

en fichier joint une proposition, appuyée sur vos remarques.

Le code :

Code:
Private Sub UserForm_Initialize()

' ........................

With Me
UserForm_Parametrages.StartUpPosition = UserForm_Fond_parametres.Top

                                      ' La position de départ à pour référence le fond d'écran 

UserForm_Parametrages.Top = UserForm_Fond_parametres.Top + 100
UserForm_Parametrages.Left = UserForm_Fond_parametres.Left + 100


End With
                                   ' Cette dernière partie fait très bricolage ....  j'aurais aimé que :
                                   ' UserForm_Parametrages se CENTRE par rapport à UserForm_Fond_parametres

                   ' UNE IDÉE ???? 


End Sub

Merci d'avance

Pascal
 

Pièces jointes

Re : Utilisation de 2 écrans avec la fonction LAYOUT d'un formulaire

Re

UN TRÈS GRAND MERCI, particulièrement à tototiti2008 ... CA FONCTIONNE ! 😀😱😉

En fichier joint le résultat, si cela peut aider d'autres XLDer.

Très bon WE à tous

Pascal
 

Pièces jointes

- 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

E
Réponses
2
Affichages
877
E
J
Réponses
28
Affichages
3 K
Jean-Yves23
J
P
Réponses
2
Affichages
1 K
pti_croc
P
Retour