Cómo congelar paneles con VBA en Excel (5 formas adecuadas)

  • Compartir Este
Hugh West

En este artículo, le mostraré cómo puede congelar los paneles de una hoja de cálculo de Excel con Visual Basic de Aplicaciones (VBA). Muchas veces, mientras trabajamos en Excel, necesitamos congelar los paneles de la hoja de cálculo para mayor comodidad y una mejor experiencia. Hoy aprenderás cómo puedes lograr esto con VBA .

Congelar paneles con VBA en Excel (Vista rápida)

 Sub Freeze_Panes_Row_and_Column() Range("C4").Select ActiveWindow.FreezePanes = True End Sub 

Descargar el cuaderno de prácticas

Descárgate este cuaderno de prácticas para ejercitarte mientras lees este artículo.

VBA Congelar Paneles.xlsm

Introducción a los paneles de congelación de Excel

En Microsoft Excel, congelar paneles significa congelar una fila o una columna o ambas, de tal forma que, aunque se desplace hacia abajo o hacia la derecha desplazando la barra de desplazamiento, esa fila o columna siempre estará visible. Normalmente se hace con filas o columnas que contienen las cabeceras del conjunto de datos.

Por ejemplo, observe el siguiente conjunto de datos. Aquí hemos congelado la hoja de cálculo hasta la fila 3 ( Años ) y la columna B ( Nombre del producto ).

Cuando bajemos por la hoja de cálculo desplazando la barra de desplazamiento, veremos que las filas hasta la fila 3 son siempre visibles.

Lo mismo para la columna B mientras nos desplazamos a la derecha.

Ahora, para congelar paneles en una hoja de cálculo manualmente, seleccione la celda justo después de la fila y la columna (Celda C4 en este ejemplo) y vaya a Ver> Paneles de congelación> Paneles de congelación en la barra de herramientas de Excel.

Para congelar sólo la fila, seleccione toda la fila y vaya a Ver> Paneles de congelación> Paneles de congelación en la barra de herramientas de Excel.

Del mismo modo, para congelar sólo la columna, seleccione toda la columna y vaya a Ver> Paneles de congelación> Paneles de congelación en la barra de herramientas de Excel.

⧭ Notas:

  • Seleccione Congelar fila superior para congelar sólo la fila superior.
  • Del mismo modo, seleccione Congelar primera columna para congelar sólo la primera columna.

5 Métodos para Congelar Paneles con VBA en Excel

Hemos aprendido qué es congelar paneles en Excel y cómo lograrlo manualmente. Ahora, vamos a nuestra discusión principal de hoy, cómo congelar paneles con VBA .

1. Congelar sólo una fila con VBA en Excel

En primer lugar, veamos cómo podemos congelar sólo una fila con VBA .

Como se ha comentado anteriormente, para congelar sólo una fila, primero hay que seleccionar toda la fila que está debajo de la fila que se va a congelar (Fila 4 en este ejemplo).

A continuación, tiene que aplicar el Paneles de congelación mando.

Así que el VBA código será:

⧭ Código VBA:

 Sub Freeze_Panes_Only_Row() Range("C4").EntireRow.Select ActiveWindow.FreezePanes = True Range("C4").Select End Sub 

⧭ Salida:

Ejecute este código. Y encontrará la hoja de cálculo activa congelada hasta la fila 3 .

⧭ Notas:

  • Aquí hemos utilizado la célula C4 para seleccionar cualquier celda de la fila 4 de la hoja de cálculo. Selecciónelo según sus necesidades.
  • La última línea del código Rango("C4").Seleccionar sirve para deseleccionar toda la fila 4 (Deseleccionar cualquier selección significa seleccionar una nueva selección, ya que en Excel, algo debe permanecer seleccionado). Puede omitir esta línea si lo desea.

Read More: Cómo congelar la fila superior en Excel (4 métodos fáciles)

2. Congelar sólo una columna con VBA en Excel

Ya hemos visto cómo podemos congelar una fila con VBA Veamos ahora cómo congelar una columna con VBA .

De forma similar a la fila, para congelar sólo una columna, primero hay que seleccionar toda la columna a la derecha de la columna que se va a congelar (Columna C en este ejemplo).

A continuación, tiene que aplicar el Paneles de congelación mando.

Así que el VBA código será:

⧭ Código VBA:

 Sub Congelar_Paneles_Solo_Columna() Range("C4").TodaLaColumna.Seleccionar ActiveWindow.FreezePanes = True Range("C4").Seleccionar End Sub 

⧭ Salida:

Ejecute este código. Y encontrará la hoja de cálculo activa congelada hasta la columna C .

⧭ Notas:

  • Aquí hemos utilizado la célula C4 para seleccionar cualquier celda de la columna C de la hoja de cálculo. Selecciónelo según sus necesidades.
  • La última línea del código Rango("C4").Seleccionar sirve para deseleccionar toda la columna C (Deseleccionar cualquier selección significa seleccionar una nueva selección, ya que en Excel, algo debe permanecer seleccionado). Puede omitir esta línea si lo desea.

Leer más: Cómo congelar 2 columnas en Excel (5 métodos)

3. Congelar Fila y Columna con VBA en Excel

Hemos visto cómo podemos congelar una fila y una columna por separado. Esta vez, vamos a ver cómo podemos congelar tanto la fila como la columna juntas.

Para congelar la fila y la columna a la vez, debe seleccionar una celda situada debajo de la fila que desea congelar y a la derecha de la columna que desea congelar (Celda C4 en este ejemplo).

A continuación, tiene que aplicar el Paneles de congelación mando.

Así que el VBA código será:

⧭ Código VBA:

 Sub Freeze_Panes_Row_and_Column() Range("C4").Select ActiveWindow.FreezePanes = True End Sub 

⧭ Salida:

Ejecute este código. Y encontrará la hoja de cálculo activa congelada hasta la fila 3 y columna C .

⧭ Notas:

  • Aquí hemos utilizado la célula C4 para seleccionar una celda debajo de la fila 3 y de la derecha a la columna B Eso es celular. C4 Selecciónelo según sus necesidades.

Leer más: Cómo congelar paneles seleccionados en Excel (10 maneras)

Lecturas similares:

  • Cómo Congelar Múltiples Paneles en Excel (4 Criterios)
  • Método abreviado de teclado para congelar paneles en Excel (3 métodos abreviados)
  • Cómo Congelar las 3 Primeras Columnas en Excel (4 Maneras Rápidas)

4. Desarrollar un formulario de usuario para congelar paneles con VBA en Excel

Hemos visto cómo podemos congelar una fila o una columna o ambas con VBA en una hoja de cálculo de Excel.

Ahora desarrollaremos un formulario de usuario para reunir todas las tareas en una única interfaz.

⧭ Procedimiento paso a paso para desarrollar el formulario de usuario:

⧪ Paso 1:

  • Pulse ALT+F11 en el teclado para abrir el Visual Basic
  • En el Visual Basic editor, vaya a Insertar> UserForm para insertar un nuevo Formulario de usuario .

⧪ Paso 2:

  • Un nuevo Formulario de usuario llamado FormularioUsuario1 se creará en el VBA
  • A la izquierda del Formulario de usuario obtendrá un Caja de herramientas llamado Controlar Pase el ratón por encima de la caja de herramientas y busque un TextBox (TextBox1) Después de encontrar uno, arrástrelo hasta la parte superior del icono Formulario de usuario .
  • Del mismo modo, arrastre un ListBox ( ListBox1 ) hasta el Cuadro de texto y un CommandButton (Commandbutton1) en la esquina inferior derecha del Formulario de usuario Cambiar la visualización del Botón de mando a OK . Formulario de usuario debería tener ahora este aspecto:

⧪ Paso 3:

Inserte un Módulo ( Insertar> Módulo ) del VBA caja de herramientas

⧪ Paso 4:

Inserte lo siguiente VBA código en el Módulo .

 Sub Run_UserForm() UserForm1.Caption = "Congelar paneles" UserForm1.TextBox1.Text = Selection.Address UserForm1.TextBox1.BorderStyle = fmBorderStyleSingle UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle UserForm1.ListBox1.ListStyle = fmListStyleOption UserForm1.ListBox1.AddItem "1. Congelar fila" UserForm1.ListBox1.AddItem "2. Congelar columna" UserForm1.ListBox1.AddItem "3. Congelar fila y columna"Load UserForm1 UserForm1.Show End Sub 

⧪ Paso 5:

Haga doble clic en el botón Botón de mando mostrado como OK Una sub privada llamada CommandButton1_Click Inserte el siguiente código:

 If UserForm1.ListBox1.Selected(0) = True Then Set Rng = Selection Rng.EntireRow.Select ActiveWindow.FreezePanes = True Rng.Select ElseIf UserForm1.ListBox1.Selected(1) = True Then Set Rng = Selection Rng.EntireColumn.Select ActiveWindow.FreezePanes = True Rng.Select ElseIf UserForm1.ListBox1.Selected(2) = True ThenActiveWindow.FreezePanes = True Else MsgBox "Select At least one. ", vbExclamation End If Unload UserForm1 

⧪ Paso 6:

Del mismo modo, haga doble clic en Cuadro de texto1 Una sub privada llamada TextBox1_Cambiar Inserte el siguiente código.

 Private Sub TextBox1_Change() On Error GoTo Message Range(TextBox1.Text).Select Message: Note = 5 End Sub 

⧪ Paso 7:

Su Formulario de usuario Seleccione la celda situada debajo de la fila que desea congelar y a la derecha de la columna que desea congelar (Celda C4 aquí), y ejecute el Macro llamado Run_UserForm .

⧪ Paso 8:

  • En Formulario de usuario Encontrará la dirección de la celda seleccionada ( C4 ) en el Cuadro de texto Si quieres, puedes cambiarlo.
  • A continuación, seleccione una de las tres opciones disponibles en el menú ListBox Aquí quiero congelar tanto la fila como la columna, así que he seleccionado Congelar fila y columna .
  • A continuación, haga clic en OK .

⧪ Paso 9:

Encontrará la hoja de trabajo congelada según su deseo. (Aquí congelada hasta la fila 3 y columna B ).

Contenido relacionado: Cómo Congelar Cuadro en Excel (6 Trucos Rápidos)

5. Alternativa de los Paneles de Congelación en Excel: Dividir la Ventana con VBA

Hemos hablado mucho de la congelar cristales en Excel. Ahora, veamos una alternativa muy útil al método congelar cristales en Excel, el Ventana partida mando.

Puede ActiveWindow.SplitRow o ActiveWindow.SplitColumn en VBA para dividir la hoja de trabajo por filas o columnas.

Por ejemplo, para dividir la hoja de cálculo a partir de la fila 3 ...usar:

 ActiveWindow.SplitRow = 3 

Del mismo modo, para dividir la hoja de trabajo de la columna B ...usar:

 ActiveWindow.SplitColumn = 2 

⧭ Código VBA:

 Sub Split_Window() ActiveWindow.SplitRow = 3 ActiveWindow.SplitColumn = 2 End Sub 

⧭ Salida:

Ejecuta el código, dividirá la hoja de cálculo activa desde la fila 3 y columna B .

Contenido relacionado: Cómo aplicar paneles de congelación personalizados en Excel (3 formas sencillas)

Cosas para recordar

  • Antes de aplicar Paneles de congelación en Excel, debe Descongelar todos los paneles de congelación En caso contrario, el Paneles de congelación no funcionará.
  • En Paneles de congelación no funcionará a través del fusionado células. Así que desunir antes de aplicar el Paneles de congelación si lo hay.

Conclusión

Así que estos son los métodos a utilizar Paneles de congelación con VBA en Excel. He intentado discutir todas las formas posibles de aplicar Paneles de congelación sobre una hoja de cálculo en Excel. ¿Tienes alguna pregunta? No dudes en planteárnosla. Y no olvides visitar nuestra web ExcelWIKI para más entradas y actualizaciones.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.