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.