Usualmente se concatena la data con pocas celdas.
Entonces que pasaría si deseo concatenar muchas mas celdas??
Para ello se creó la Función CONCATENARCELDAS HECHOS EN VBA:
Con esta función se logrará concatenar a grandes rangos de data de manera mas rápida. A continuación se muestra el código para concatenar en VBA:
Function ConcatenarCeldas(rango As Range)
For Each celda In rango.Cells
If celda.Value <> "" Then
resultado = resultado & "; " & celda.Value
End If
Next
resultado = Right(resultado, Len(resultado) - 2)
ConcatenarCeldas = resultado
End Function
(Para mayor visualización de la imagen, hacer click en la misma)
EL SIGUIENTE EJEMPLO ESTA AL FINAL DE LA HOJA CON LINK DE DESCARGA DEL EXCEL
__________________________________
23/06/2017 a las 5:42 pm
Hola buenas tardes, he realizado esta Practica, pero a la hora de querer llamar la Funcion en EXCEL no la manda llamar, sigue apareciendo solo la funcion CONCATENAR nativa de Excel, en un principio si me aparecían ambas, pero ahora no la manda llamar, que puede ser lo que no permita llamar la funcion??, de favor.
Por anticipado muchas gracias por su gran ayuda.
02/08/2017 a las 1:30 am
Buenas tardes, verifique si guardo el código en un modulo y que el libro donde este el modulo este abierto a la hora de emplear la funcion
02/08/2017 a las 1:42 am
Buenas tardes, verifique si guardo el código en un modulo y que el libro donde este el modulo este abierto a la hora de emplear la funcion
Igualmente el código correcto de la función es como aparece en la imagen:
Lo transcribo:
Function ConcatenarCeldas(rango As Range)
For Each celda In rango.Cells
If celda.Value <> "" Then
resultado = resultado & "; " & celda.Value
End If
Next
resultado = Right(resultado, Len(resultado) - 2)
ConcatenarCeldas = resultado
End Function
** Por ultimo al buscar en funciones debera aparecer al lado de la nativa Concatenar aparece ConcatenarCeldas, que es la que corresponde al código, brillantemente planteado por Fernando Santos
02/08/2017 a las 1:43 am
Function ConcatenarCeldas(rango As Range)
For Each celda In rango.Cells
If celda.Value <> "" Then
resultado = resultado & "; " & celda.Value
End If
Next
resultado = Right(resultado, Len(resultado) - 2)
ConcatenarCeldas = resultado
End Function
02/03/2018 a las 5:21 pm
Buena tarde, como seria el código si quisiera concatenar unas celdas pero antes de la ultima celda me anteponga la "y". me explico , con el código quedaría, alex; maría; juan; pilar; alberto; ale, que instrucción tendría que aumentar para que me quedara alex, maría, juan, pilar, alberto y ale.
19/05/2021 a las 8:20 am
Hola, esto te podría servir
Function ConcatenarCeldas(rango As Range)
cantidad = rango.Count
contador = 0
For Each celda In rango.Cells
contador = contador + 1
If contador = cantidad Then
resultado = resultado & " y " & celda.Value
Else
resultado = resultado & ", " & celda.Value
End If
Next
resultado = Right(resultado, Len(resultado) - 2)
ConcatenarCeldas = resultado
End Function
11/06/2021 a las 1:51 pm
Hola, me interesa la parte de celdas con codigo. Realmente estoy tratando de concatenar rangos discontinuos pero a partir de la varibale que los define.
es decir supongamos que el rango M8:M15 lo defino con el nombre venta
Mi pregunta es como puedo indicar en VBA que concatene varios rangos pero llamados por el nombre que los define
ej. tengo la tabla sgt y en una columna quiero poner la concatenacion de sexo y peso, celda a celda
sexo condicion peso lote concatenacion
femenino muerta 25 5 femenino 5
macho bueno 45 6 macho 6
lo que quisera es poner lo sgt For Each Celda In Range("sexo, lote")
pero no me funciona no se como llamar a los rangos definidos por nombres y que los concatene
Alguna sugerencia, por favor?
11/06/2021 a las 2:36 pm
Hola Fernando, estoy tratando de concatenar rangos discontinuos pero a partir de la varibale que los define.
es decir supongamos que el rango M8:M15 lo defino con el nombre venta
Mi pregunta es cómo puedo indicar en VBA que concatene varios rangos pero llamados por el nombre que los define
ej.
tengo la tabla sgt y en una columna quiero poner la concatenacion de sexo y peso, fila a fila, celda a celda
sexo: incluye el rango de femenino y macho y asi cada encabezado de la columna es el nombre definido para el rango correspondiente.
sexo condicion peso lote concatenacion
femenino muerta 25 5 femenino 5
macho bueno 45 6 macho 6
lo que quisera es una funcion o codigo donde con solo declarar los nombres
concatene fila a fila las celdas de los namerango seleccionados
ej. For Each Celda In Range("sexo, lote") - claro esto no funciona
pero no logro hacerlo, no se como llamar a los rangos definidos por nombres y que los concatene
Alguna sugerencia, por favor?