Contrôle de la taille de la fenêtre lors de l’ouverture de classeurs supplémentaires (Microsoft Excel)
Si Steven a un classeur ouvert et agrandi, puis qu’il ouvre un ou plusieurs classeurs supplémentaires, les classeurs supplémentaires semblent agrandis mais ne le sont pas vraiment. Les côtés gauche, inférieur et droit de ces classeurs supplémentaires se trouvent sur les bords de l’écran, mais les sommets en cascade vers le bas, comme des fiches décalées les unes des autres. Pour Steve, ce serait bien mieux si les classeurs supplémentaires s’ouvraient soit comme une partie plus petite de la fenêtre, soit aussi complètement maximisés afin qu’il puisse ensuite « restaurer » les fenêtres à une taille plus petite. Il se demande s’il existe un paramètre qui contrôle la taille de la fenêtre de ces classeurs supplémentaires lorsqu’ils sont ouverts.
Vous pouvez facilement affecter ce qui se passe avec une fenêtre de classeur grâce à l’utilisation de macros. L’endroit normal pour ce faire serait dans la macro Workbook_Open, qui est un gestionnaire d’événements dans l’objet ThisWorkbook. Voici une version très simple qui garantirait simplement que la fenêtre est maximisée:
Public Sub WorkBook_Open() Application.WindowState = xlMaximized End Sub
Vous pouvez ensuite, si vous le souhaitez, ajuster manuellement la taille de la fenêtre agrandie.
Bien sûr, vous pouvez également « construire » la macro pour qu’elle manipule la fenêtre d’autres manières. Par exemple, voici une macro qui déterminera la taille d’écran maximale du moniteur sur lequel le classeur s’ouvre, puis ajuste la taille de la fenêtre pour occuper 72% de la largeur de l’écran et 96% de la hauteur de l’écran.
Public Sub WorkBook_Open() Dim iMaxWidth As Integer 'Screen width (pixels) Dim iMaxHeight As Integer 'Screen height (pixels) Dim sngStartX As Single 'Upper-left corner of desired window Dim sngStartY As Single 'Upper-left corner of desired window Dim sngWidth As Single 'Width of desired window Dim sngHeight As Single 'Height of desired window 'Specifications for final window size sngStartX = 0.14 'Fraction of screen width from left edge sngStartY = 0.02 'Fraction of screen height from top sngWidth = 0.72 'Fraction of screen width desired sngHeight = 0.96 'Fraction of screen height desired With Application 'Maximize screen in order to grab maximum width and height .WindowState = xlMaximized iMaxWidth = .Width iMaxHeight = .Height .WindowState = xlNormal 'Set final window position and size .Top = iMaxHeight sngStartY .Left = iMaxWidth sngStartX .Width = sngWidth iMaxWidth .Height = sngHeight iMaxHeight End With End Sub
Vous pouvez bien sûr ajuster les paramètres des deux variables (sngWidth et sngHeight) pour choisir une taille d’écran finale différente. Vous pouvez également ajuster les paramètres dans les variables sngStartX et sngStartY pour spécifier la position du coin supérieur gauche de la fenêtre finale.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (4975) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.