Es probable que alguna ocasión te hayas encontrado con algún libro de Excel que nos pide ingresar los mismos datos en varias hojas. Esta tarea puede consumir mucho tiempo así que en esta ocasión te mostraré algunos métodos que nos ayudarán a ingresar datos en varias hojas de manera simultánea.
El primer método que revisaremos utiliza la agrupación de hojas de Excel de manera que los datos ingresados en una de ellas son replicados a las demás hojas del grupo. Ese método es muy sencillo de implementar y solo requiere de algunos pasos para hacerlo funcionar correctamente.
Los otros dos métodos que te mostraré utilizan código VBA para ayudarnos a automatizar un poco esta tarea y hasta nos permitirán ingresar los datos en ubicaciones diferentes para cada hoja.
Ingresar datos en varias hojas de Excel
Para agrupar varias hojas de un libro de Excel existen dos métodos. El primer método es útil cuando el grupo estará formado por hojas contiguas y en ese caso debemos hacer clic sobre el nombre de la primera hoja, mantenemos pulsada la tecla Mayús (Shift) y finalmente hacemos clic en el nombre de la última hoja que formará parte del grupo.
Por ejemplo, la siguiente imagen muestra el resultado de activar la Hoja1, mantener pulsada la tecla Mayús y hacer clic en la Hoja5.
El segundo método que podemos utilizar para agrupar hojas nos será útil cuando no son contiguas. Para crear ese tipo de agrupación hacemos clic en la primera hoja, pulsamos la tecla CTRL y sin soltarla hacemos clic sobre cada hoja que incluiremos en el grupo.
Cualquiera de los métodos utilizado, al terminar de hacer la agrupación, la barra de título de Excel mostrará la palabra Grupo encerrada por corchetes.
Una vez que has agrupado las hojas, podrás ingresar datos en cualquiera de las hojas y se replicará dicho cambio automáticamente en todas las hojas del grupo. De esta manera podrás ingresar datos en varias hojas de Excel simultáneamente.
Como ejemplo utilizaré el libro anterior donde previamente he agrupado las primeras 5 hojas. En la Hoja1 ingresaré el texto Nombre en la celda A1 y el texto Apellido en la celda B1.
Al activar cualquiera de las hojas del grupo tendré el mismo texto en las celdas A1 y B1. Pero eso no es todo, cuando las hojas están agrupadas, cualquier cambio en el formato de las celdas también será replicado en el grupo.
Para probar este comportamiento, aplicaré un fondo oscuro a las celdas A1 y B1, cambiaré el color de la fuente, centraré el texto y aplicaré un formato de negrita. Al visitar cualquiera de las hojas del grupo tendré el mismo formato sobre las celdas A1 y B1.
Esto es una gran ventaja ya que no solamente verás replicados los datos en todas las hojas sino que también se aplicarán los cambios en el formato de las celdas.
Cómo desagrupar las hojas de un libro
Para desagrupar las hojas puedes hacer clic en el nombre de cualquier otra hoja que no pertenezca al grupo. También puedes desagrupar las hojas haciendo clic derecho sobre el nombre de una hoja del grupo y seleccionando la opción Desagrupar hojas.
Desventaja de la agrupación manual de hojas
Si este tipo de tarea la realizas ocasionalmente, entonces el método de agrupación de hojas será muy efectivo y fácil de utilizar para ingresar datos en varias hojas simultáneamente.
Por el contrario, si debido al trabajo que realizas con el libro continuamente seleccionas hojas que están fuera del grupo, entonces se perderá continuamente la selección de hojas e inevitablemente tendrás que hacer la agrupación una y otra vez lo cual podría significar un tiempo considerable.
En ese caso la mejor opción será recurrir a la automatización con algunas líneas de código VBA las cuales revisaremos a continuación.
Ingresar datos en varias hojas con VBA
Lo que automatizaremos con código VBA será la agrupación de las hojas de manera que no tengas que agruparlas cada vez que necesites ingresar datos en varias hojas. La línea de código que nos ayudará a agrupar las hojas será la siguiente:
Sheets(Array("Hoja1", "Hoja2", "Hoja3", "Hoja4", "Hoja5")).Select
El método Select es el encargado de agrupar las hojas cuyos nombres están entre comillas dobles. Lo único que debemos decidir será el lugar donde colocaremos esta instrucción y mi sugerencia es elegir la hoja que aparece al inicio del listado ya que será la hoja que permanecerá activa después de realizar la agrupación.
Para nuestro ejemplo colocaré el código en la Hoja1 así que haré clic derecho sobre su nombre y seleccionaré la opción Ver código.
Se abrirá la ventana del Editor de Visual Basic para Aplicaciones y en el panel derecho colocaré el siguiente código:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Sheets(Array("Hoja1", "Hoja2", "Hoja3", "Hoja4", "Hoja5")).Select End Sub
Este conjunto de instrucciones utiliza el evento Worksheet_SelectionChange que es llamado cada vez que existe un cambio en la selección de la hoja. Al detectarse el cambio de selección, se agruparán automáticamente las hojas y por lo tanto se copiarán los datos sobre todas las hojas agrupadas.
Podrás desagrupar las hojas de la misma manera que en el ejemplo anterior, haciendo clic en alguna hoja que no pertenezca al grupo o haciendo clic derecho sobre alguna hoja del grupo y seleccionando la opción Desagrupar hojas.
Ingresar datos en varias hojas en ubicaciones diferentes
Nuestro último ejemplo se encargará de ingresar datos en varias hojas simultáneamente pero en celdas diferentes. Los ejemplos anteriores replican exactamente los datos ingresados en cada celda es decir, al ingresar un dato en la celda A1, todas las hojas del grupo insertarán el mismo dato en la celda A1.
Hay ocasiones en las que necesitamos ingresar datos en posiciones diferentes dentro de cada hoja. Para nuestro ejemplo supondremos que los datos ingresados en la Hoja1, en el rango A1:B5, deberán ser ingresados en la Hoja2 en el rango C1:D5 y en la Hoja3 en el rango E6:F10.
Es evidente que con las opciones anteriores no podríamos realizar esta tarea ya que utilizan la agrupación de hojas y no podremos colocar los datos en diferentes celdas. Por lo tanto, es necesario utilizar un código diferente el cual muestro a continuación.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range("A1:B5"), Target) Is Nothing Then With Range("A1:B5") .Copy Destination:=Sheets("Hoja2").Range("C1") .Copy Destination:=Sheets("Hoja3").Range("E6") End With Else Me.Select End If End Sub
Ya que la hoja principal, donde ingresaré los datos, es la Hoja1 entonces he colocado este código en dicha hoja. El método Intersect me ayuda a detectar un cambio en el rango A1:B5 y posteriormente se hace una copia hacia la Hoja2 y Hoja3 indicando la celda en donde se colocarán los datos.
Como recuerdas, el método de agrupación de hojas también replicaba el formato de las celdas, pero con este método solo se copiará los valores sin replicar el formato.
Con los ejemplos que hemos realizado en este artículo podrás ingresar datos en varias hojas simultáneamente en tu libro de Excel. Solo debes elegir el método que mejor se adapte a tus necesidades e implementarlo de inmediato para comenzar a ahorrar todo ese tiempo que antes invertías en ingresar los datos hoja por hoja.