En esta lección, vas a aprender a combinar y descombinar celdas de manera automática utilizando macros.
En primer lugar, para combinar un rango de celdas, usaremos la propiedad Merge:
También, es posible usar la siguiente sintaxis:
Si, por el contrario, lo que queremos es descombinar celdas, usaremos la propiedad UnMerge:
Igualmente es posible usar esta otra sintaxis:
A continuación, vamos a poner todo esto en práctica y a combinar/descombinar celdas usando macros.
Primero, crea un libro nuevo, abre el editor VBA, inserta 3 módulos y copia las siguientes macros en ellos:
Macro 1. Combinar las celdas seleccionadas.
'Macro que combina las celdas seleccionadas en el recuadro (Método 1)
'Declaramos las cuatro variables como enteros porque van a ser números
Dim Filainicio As Integer
Dim Filafinal As Integer
Dim Columnainicio As Integer
Dim Columnafinal As Integer
'Guardamos el valor de la celda C4 en la variable Filainicio
Filainicio = Range("C4").Value
'Guardamos el valor de la celda D4 en la variable Filafinal
Filafinal = Range("D4").Value
'Guardamos el valor de la celda C5 en la variable Columnainicio
Columnainicio = Cells(5, "C").Value
'Guardamos el valor de la celda D5 en la variable Columnafinal
Columnafinal = Cells(5, 4).Value
'Combinamos las celdas del rango
Range(Cells(Filainicio, Columnainicio), Cells(Filafinal, Columnafinal)).Merge
'Escribimos el texto "Combinadas"
Range(Cells(Filainicio, Columnainicio), Cells(Filafinal, Columnafinal)).Value = "Combinadas"
'Alineamos horizontalmente el texto
Range(Cells(Filainicio, Columnainicio), Cells(Filafinal, Columnafinal)).HorizontalAlignment = xlCenter
'Alineamos verticalmente el texto
Range(Cells(Filainicio, Columnainicio), Cells(Filafinal, Columnafinal)).VerticalAlignment = xlCenter
End Sub
Macro 2. Descombinar las celdas seleccionadas.
'Macro que descombina las celdas seleccionadas en el recuadro
'Declaramos las cuatro variables como enteros porque van a ser números
Dim Filainicio As Integer
Dim Filafinal As Integer
Dim Columnainicio As Integer
Dim Columnafinal As Integer
'Guardamos el valor de la celda C4 en la variable Filainicio
Filainicio = Range("C4").Value
'Guardamos el valor de la celda D4 en la variable Filafinal
Filafinal = Range("D4").Value
'Guardamos el valor de la celda C5 en la variable Columnainicio
Columnainicio = Cells(5, "C").Value
'Guardamos el valor de la celda D5 en la variable Columnafinal
Columnafinal = Cells(5, 4).Value
'Borramos el texto "Combinadas"
Range(Cells(Filainicio, Columnainicio), Cells(Filafinal, Columnafinal)).ClearContents
'Descombinamos las celdas del rango
Range(Cells(Filainicio, Columnainicio), Cells(Filafinal, Columnafinal)).UnMerge
End Sub
Macro 3. Combinar las celdas seleccionadas (otro método).
'Macro que combina las celdas seleccionadas en el recuadro (Método 2)
'Declaramos las cuatro variables como enteros porque van a ser números
Dim Filainicio As Integer
Dim Filafinal As Integer
Dim Columnainicio As Integer
Dim Columnafinal As Integer
'Guardamos el valor de la celda C4 en la variable Filainicio
Filainicio = Range("C4").Value
'Guardamos el valor de la celda D4 en la variable Filafinal
Filafinal = Range("D4").Value
'Guardamos el valor de la celda C5 en la variable Columnainicio
Columnainicio = Cells(5, "C").Value
'Guardamos el valor de la celda D5 en la variable Columnafinal
Columnafinal = Cells(5, 4).Value
'Seleccionamos las celdas del rango
Range(Cells(Filainicio, Columnainicio), Cells(Filafinal, Columnafinal)).Select
'Combinamos las celdas del rango
Selection.Merge
'Escribimos el texto "Combinadas"
Selection.Value = "Combinadas"
'Alineamos horizontalmente el texto
Selection.HorizontalAlignment = xlCenter
'Alineamos verticalmente el texto
Selection.VerticalAlignment = xlCenter
End Sub
Seguidamente, rellena la hoja con los valores que se muestran a continuación y crea tres botones asociados a las macros que acabamos de copiar. A continuación, Te dejo el enlace al tema donde explico cómo asociar macros a botones, por si te interesa.
Finalmente, debería quedarte algo así:
Como resultado, si ejecutas la primera macro, verás que se combinan las celdas seleccionadas en la cuadrícula. Puedes escribir los valores que quieras en ella, pero evita las 10 primeras filas y las 6 primeras columnas para no desconfigurar la tabla.
Además, en esta macro he utilizado tres formas distintas para asignar valores a las variables. En realidad, puedes usar la que más te guste:
La segunda macro va a borrar el contenido de las celdas combinadas “Combinadas” y a descombinarlas volviendo, por lo tanto, a la situación original.
Por último, la tercera de las macros realiza la misma función que la primera, pero el código varía ligeramente. En realidad, lo que hemos hecho es seleccionar el rango de celdas con el comando:
Range(Cells(Filainicio, Columnainicio), Cells(Filafinal, Columnafinal)).Select
Para, posteriormente, realizar las operaciones de combinación, asignación de valor y alineación del texto haciendo referencia a esa selección sin tener que escribir todo el chorizo de Range en cada comando.
Selection.Merge
'Escribimos el texto "Combinadas"
Selection.Value = "Combinadas"
'Alineamos horizontalmente el texto
Selection.HorizontalAlignment = xlCenter
'Alineamos verticalmente el texto
Selection.VerticalAlignment = xlCenter
Es lo mismo, pero ahorramos tiempo.
Con todo esto, llegamos al final de la novena lección, en la que has aprendido a combinar celdas automáticamente usando macros.
Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.
Nos vemos en el próximo capítulo.
Si te ha servido y quieres donar
Descarga el archivo del ejemplo
« L8. Agregar/eliminar filas y columnas con macros.
L10. Filtrar y ordenar datos con macros. »
0 comentarios