Steven a une feuille de calcul avec de nombreuses lignes et colonnes de données. Il a gelé la première ligne et la première colonne en rendant la cellule B2 active, puis en gelant les volets. Cela fonctionne comme il le souhaite. Il peut même enregistrer et fermer le classeur, et les volets sont toujours figés lorsqu’il rouvre le classeur.

Cependant, si Steven ouvre une nouvelle fenêtre pour le classeur (Affichage | Fenêtre | Nouvelle fenêtre), la nouvelle fenêtre n’a pas de volets figés. Comme il a gelé des volets sur de nombreuses feuilles de calcul de ce classeur, il doit faire très attention à la fenêtre qu’il ferme en premier. S’il ferme d’abord la fenêtre d’origine, lorsqu’il enregistre le classeur, il enregistre toutes les feuilles de calcul non gelées.

Steven se demande s’il existe un moyen d’obtenir la nouvelle fenêtre pour conserver les paramètres des volets gelés?

Il n’y a aucun paramètre dans Excel qui gérera ce que Steven doit se produire. La raison pour laquelle les volets figés ne sont pas enregistrés est que FreezePanes (ainsi que Zoom, Split et quelques autres paramètres) sont des propriétés de fenêtres et non de feuilles de calcul ou de classeurs. Lorsqu’une nouvelle fenêtre est créée, les propriétés ne sont pas héritées de la fenêtre d’origine.

Vous pouvez cependant contourner ce comportement (et résoudre le problème de Steven)

en utilisant une macro pour effectuer la configuration à votre place. Une approche très courte consiste à renoncer à utiliser les outils du ruban pour créer votre nouvelle fenêtre. À la place, ajoutez cette macro au QAT et utilisez-la pour créer la fenêtre:

Sub CreateNewWindow1()

Dim rPane As Range

Set rPane = ActiveWindow.VisibleRange(1)

ActiveWindow.NewWindow     ActiveSheet.Range("B2").Select     ActiveWindow.FreezePanes = True End Sub

La macro crée une nouvelle fenêtre, définit les cellules visibles égales à ce qui est affiché dans la fenêtre d’origine, sélectionne la cellule B2 dans la nouvelle fenêtre, puis fige les volets.

Cette approche simple peut ne pas fonctionner, cependant, si vos besoins de «gel de volet» sont plus variés. Par exemple, vous voudrez peut-être un moyen de créer une nouvelle fenêtre et de la faire correspondre aux volets de la fenêtre qui étaient actifs lorsque vous avez créé la nouvelle fenêtre.

La macro suivante vérifie si la fenêtre actuelle a un volet fozen. Si c’est le cas, il détermine où il est gelé et l’utilise pour définir les volets gelés dans une nouvelle fenêtre. S’il n’y a pas de volets gelés, une nouvelle fenêtre est créée de toute façon et rien n’y est gelé. Dans les deux cas, la même cellule est sélectionnée dans la nouvelle fenêtre que celle sélectionnée dans l’original.

Sub CreateNewWindow2()

Dim iRow As Integer     Dim iCol As Integer     Dim rOldPos As Range

iRow = 0     iCol = 0     If ActiveWindow.FreezePanes Then         iRow = ActiveWindow.ScrollRow         iCol = ActiveWindow.ScrollColumn     End If     Set rOldPos = ActiveCell     ActiveWindow.NewWindow     If (iRow > 0) And (iCol > 0) Then         Cells(iRow, iCol).Select         ActiveWindow.FreezePanes = True     End If     rOldPos.Select End Sub

Ce code, encore une fois, pourrait être utilisé pour créer toutes les nouvelles fenêtres que vous souhaitez.

Ils accomplissent ce que Steven avait besoin de faire car ils copient les paramètres du volet figé de la fenêtre active vers la fenêtre nouvellement créée.

_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 (13366) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.