Taille et position fenêtre excel

Bonjour à tous,

Excel est mon outil de travail « favori et indispensable ». A ce titre j’ouvre quotidiennement un paquet de fichiers. Beaucoup viennent de moi, mais parfois de personnes extérieures.
le soucis c’est que certains d’entre eux, modifie la taille et la position de la fenêtre, ce qui vient fatalement modifier les miennes.
Dans mes propres fichiers je voudrais donc imposer la taille et la position de mes classeurs via la macro Auto Open()
Private Sub Auto_Open()

Worksheets(« Actions »).Activate
Application.WindowState = xlNormal
Application.Width = 587
Application.Height = 559

End Sub

Sauf que je ne connais pas les chiffres longueur/largeur à mettre dans mes variables.

Est-ce en rapport avec la résolution ?

INFO IMPORTANTE, j’utilise 3 écrans, mes classeurs s’ouvrant sur 2 écrans complets.

Merci de votre aide

Bonjour

Récupères d’abord tes dimensions souhaitées avec ce petit code à mettre dans ton fichier à la bonne taille :

With ActiveWindow
MsgBox (.Height)
MsgBox (.Width)
End With

Note la hauteur et la largeur

Puis mets ces valeurs dans un onglet dans 2 cellules distinctes de ton choix

Puis dans ta procédure Private Sub Auto_Open() mets ces lignes de code :

With ActiveWindow
.Height = Sheets(« Feuil2 »).Range(« A1 »)
.Width = Sheets(« Feuil2 »).Range(« B1 »)
End With

en actualisant le nom de l’onglet et la référence de la cellule
pour la hauteur : Sheets(« Feuil2 »).Range(« A1 »)
pour la largeur : Sheets(« Feuil2 »).Range(« B1 »)

Je pense que cela devrait le faire

Essaies et dis moi

Bonjour FFO,

ok parfait, je vais tester.

Par contre la hauteur et la largeur c’est une chose…mais n’y a t il pas également une variable qui prend en compte la position de départ de la fenêtre ?

Tu peux récupérer la position à l’identique en rajoutant ces 2 lignes de code
Pour connaitre celles à utiliser :

MsgBox (.Top)
MsgBox (.Left)

ce qui donne le code de récupération pour les dimensions et la position souhaitées :

With ActiveWindow
MsgBox (.Height)
MsgBox (.Width)
MsgBox (.Top)
MsgBox (.Left)
End With

Puis dans ta procédure Private Sub Auto_Open()

With ActiveWindow
.Height = Sheets(« Feuil2 »).Range(« A1 »)
.Width = Sheets(« Feuil2 »).Range(« B1 »)
.Top = Sheets(« Feuil2 »).Range(« A2 »)
.Left = Sheets(« Feuil2 »).Range(« B2 »)
End With

Avec mise à jour du nom de l’onglet et de la cellule pour chacune de ces lignes

Essaies et dis moi

J’ai bien compris les 4 variables et je les maitrise grâce à tes explications. MERCI bcp

Par contre je n’arrive pas à comprendre la gestion de mes 3 écrans.
Mon écran central c’est pour windows le n°3
celui de droite le n°2
celui à gauche le n°1
A chaque fois que j’ouvre Excel cela se fait sur l’écran n°2. du coup tous les popups aussi. Et je n’arrive pas à lui dire que l’écran principal c’est le 3

Ta macro « Private Sub Auto_Open() » doit être dans ce classeur à dimensionner et positionner
Sinon il faut en début de procédure rendre ce classeur actif à l écran comme ceci :

Workbooks(« mon classeur 3 »).Activate

Essaies et dis moi

Bonjour FFO,

je manque à tous mes devoirs en oubliant de te répondre.
Oui ça fonctionne.
Désolé

Cdt

Bonjour
Vaut mieux tard que jamais
Effectivement c est plus cool d avoir un retour
Ravi que celà fonctionne
Au plaisir

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.