Steven tiene una hoja de trabajo con muchas filas y columnas de datos. Ha congelado la primera fila y columna activando la celda B2 y luego congelando los paneles. Esto funciona como él quiere. Incluso puede guardar y cerrar el libro, y los paneles todavía están congelados cuando vuelve a abrir el libro.

Sin embargo, si Steven abre una nueva ventana para el libro de trabajo (Ver | Ventana | Nueva ventana), la nueva ventana no tiene paneles congelados. Como ha congelado paneles en muchas hojas de trabajo en este libro, debe tener mucho cuidado con la ventana que cierra primero. Si primero cierra la ventana original, cuando guarda el libro, guarda todas las hojas de trabajo descongeladas.

Steven se pregunta si hay alguna manera de que la nueva ventana conserve la configuración de los paneles congelados.

No hay ninguna configuración en Excel que maneje lo que Steven necesita que suceda. La razón por la que los paneles congelados no se guardan es porque FreezePanes (junto con Zoom, Split y algunas otras configuraciones) son propiedades de ventanas, no de hojas de trabajo o libros de trabajo. Cuando se crea una nueva ventana, las propiedades no se heredan de la ventana original.

Sin embargo, puedes evitar este comportamiento (y resolver el problema de Steven)

mediante el uso de una macro para realizar la configuración por usted. Un enfoque muy breve es renunciar al uso de las herramientas de cinta para crear su nueva ventana. En su lugar, agregue esta macro al QAT y utilícela para crear la ventana:

Sub CreateNewWindow1()

Dim rPane As Range

Set rPane = ActiveWindow.VisibleRange(1)

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

La macro crea una nueva ventana, establece las celdas visibles iguales a las que se muestran en la ventana original, selecciona la celda B2 en la nueva ventana y luego congela los paneles.

Sin embargo, este enfoque simple puede no funcionar si sus necesidades de «congelación de paneles» son más variadas. Por ejemplo, es posible que desee una forma de crear una nueva ventana y hacer que coincida con los paneles que estaban en la ventana que estaban activos cuando creó la nueva ventana.

La siguiente macro comprueba si la ventana actual tiene un panel de doce. Si lo hace, entonces determina dónde está congelado y lo usa para configurar los paneles congelados en una nueva ventana. Si no hay paneles congelados, se crea una nueva ventana de todos modos y no hay nada congelado. En cualquier caso, se selecciona la misma celda en la nueva ventana que se seleccionó en la 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

Este código, nuevamente, podría usarse para crear cualquier ventana nueva que desee.

Logran lo que Steven necesitaba hacer porque copian la configuración del panel congelado de la ventana activa a la ventana recién creada.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (13366) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.