Concatenar múltiples celdas en Excel con VBA

En esta ocasión mostraré cómo crear una función VBA para concatenar múltiples celdas en Excel con solo especificar un rango de celdas. Esta función será de gran ayuda cuando necesitemos concatenar una gran cantidad de cadenas de texto.

Desventaja de la función CONCATENAR

Excel provee la función CONCATENAR para poder unir los valores de varias celdas, pero su grande desventaja es que debemos especificar cada uno de los valores. Esto no sería problema si solo queremos concatenar dos o tres celdas, pero se convierte en un problema si necesitamos unir el texto de cien o más celdas.

Supongamos que tenemos una lista de nombres de empleados de acuerdo a la localidad donde trabajan.

Concatenar múltiples celdas en Excel con VBA

Nuestro objetivo es concatenar todos los nombres en una sola cadena de texto que utilizará el punto y coma (;) y un espacio como separadores entre cada nombre. Si quisiéramos utilizar la función CONCATENAR necesitaríamos una fórmula como la siguiente:

=CONCATENAR(B2, "; ", B3, "; ", B4, "; ", B5, "; ", C2, "; ", C3, "; ", C4, "; ", D2, "; ", D3, "; ", D4, "; ", D5, "; ", E2, "; ", E3, "; ", E4)

Función VBA para concatenar múltiples celdas

En casos como el anterior, es totalmente impráctico utilizar la función CONCATENAR por lo que crear una función VBA que nos ayude a concatenar múltiples celdas en Excel será de gran beneficio. Considera el siguiente código:

Macro para concatenar múltiples celdas en Excel

La función CONCATENARCELDAS recibe como argumento un rango y recorre cada una de las celdas para concatenar sus valores. Solo en caso de que la celda no tenga un valor será excluida de la concatenación.

Ya que en el primer ciclo del bucle la variable resultado está vacía, mi cadena siempre empezará con un punto y coma. Es por eso que usando las funciones Right y Len remuevo esa primera aparición del punto y coma y del primer espacio en blanco.

Probar la concatenación de varias celdas

Observa la siguiente animación donde pongo a prueba la función VBA recién creada.

Ejemplo de concatenación múltiple en Excel

Esta función es muy básica, pero nos ayuda a concatenar múltiples celdas de una manera rápida y sencilla. Seguramente existen muchas ideas para mejorar esta función pero serán tema de otro artículo. Mientras tanto puedes descargar el libro de trabajo y experimentar por ti mismo.

Artículos relacionados
Introducción a las macros