Division inégale de l’écran entre deux classeurs (Microsoft Excel)
Souvent, lorsque Dave a deux classeurs ouverts, il utilise Arrange | Horizontal pour les visualiser simultanément. Cela divise l’espace uniformément entre les deux classeurs. Cependant, il arrive souvent que Dave souhaite voir seulement quelques lignes de données dans un classeur et de nombreuses lignes dans l’autre. Il se demande s’il existe un moyen pratique de dimensionner manuellement le plus petit classeur et de laisser Excel remplir l’espace restant à l’écran avec le deuxième classeur.
La manière manuelle de procéder est celle que Dave (et la plupart des autres utilisateurs d’Excel) connaissent déjà: vous organisez les fenêtres horizontalement, redimensionnez la fenêtre supérieure, puis redimensionnez la fenêtre inférieure. De cette façon, vous obtenez que les fenêtres soient exactement comme vous le souhaitez pour faire votre travail.
Si vous souhaitez un moyen plus automatique de redimensionner les fenêtres, vous pouvez utiliser une macro pour accomplir la tâche. La macro suivante repose sur vous pour dimensionner la première fenêtre comme vous le souhaitez, puis elle redimensionne automatiquement la deuxième fenêtre pour occuper l’espace restant sous la fenêtre supérieure.
Sub UnevenSplit1() Dim Ht0 As Single Dim Ht1 As Single Dim Ht2 As Single Dim Top2 As Single If Windows.Count = 2 Then With Windows(1) Ht1 = .Height .WindowState = xlMaximized Ht0 = .Height End With Top2 = Ht1 + 3 Windows.Arrange ArrangeStyle:=xlHorizontal With Windows(1) .Top = 1 .Height = Ht1 End With With Windows(2) .Top = Top2 .Height = Ht0 - Ht1 - 22 End With Windows(1).Activate End If End Sub
La macro redimensionnera uniquement les fenêtres de votre classeur si vous n’avez que deux classeurs ouverts. Si vous avez plus ou moins que cela, il semblera que rien ne se passe.
Vous pouvez faire passer l’automatisation à une autre étape en demandant à la macro de redimensionner également la fenêtre supérieure. L’exemple suivant se termine avec votre fenêtre supérieure occupant 25% de l’écran et la fenêtre inférieure occupant 75%.
Sub UnevenSplit() Dim Ht1 As Single Dim Ht2 As Single Dim Ht1a As Single Dim Ht2a As Single Dim Top2 As Single If Windows.Count = 2 Then Windows.Arrange ArrangeStyle:=xlHorizontal Ht1 = Windows(1).Height Ht2 = Windows(2).Height Ht1a = Ht1 / 2 Top2 = Ht1a + 3 Ht2a = Ht2 + Ht1a With Windows(1) .Top = 1 .Height = Ht1a End With With Windows(2) .Top = Top2 .Height = Ht2a End With Windows(1).Activate End If End Sub
Vous devez également être conscient que la valeur de cette macro dépend, en grande partie, de ce que vous avez visible dans vos fenêtres. Si vous avez les rubans à leur pleine profondeur verticale, cela prend beaucoup d’espace à l’écran. En fait, cela peut prendre tellement que même si la fenêtre supérieure occupe 25% de la hauteur de l’écran, elle peut ne pas afficher de lignes de votre feuille de calcul car l’espace est occupé par le ruban et d’autres éléments de l’interface.
Il y a deux solutions possibles. La première consiste à minimiser les éléments de l’écran, tels que le ruban. (Double-cliquez sur n’importe quel onglet du ruban afin de réduire le ruban.) L’autre solution, bien sûr, est que la macro utilise différents calculs pour déterminer les tailles finales des fenêtres. (Les hauteurs de fenêtre finales sont dans les variables Ht1a et Ht2a.)
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (13380) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.