Aplicar la función CONCATENAR en vba

Necesito un código para poder concatenar los datos de varias celdas y ponerlo en otra..

2 respuestas

Respuesta
3

Si no querés aplicar una fórmula en tu hoja sino que necesitas incluirlo en una macro, aquí te presento 2 casos:

1- Concatena tal como haría la función que ya viene en Excel y deja solo el resultado en una celda

2- Concatena las celdas de un rango y deja la cadena en otra.

Sub concatenando()
'x Elsamatilde
'concatena con fórmula y guarda resultado
' en celda E se concatenan las celdas de col B:D
[E2].Select
    ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-3],RC[-2],RC[-1])"
    ActiveCell.Copy
    ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
'otro caso: tener un rango de celdas y en otra cualquiera concatenerlas
Set rgo = Range("B2:E2")
For Each rg In rgo
    cadena = cadena & rg.Text
Next rg
'mostrar cadena en alguna celda
[A5] = cadena
End Sub

Te recuerdo que la consulta sigue abierta... no olvides valorar las respuestas.

Sdos!

HOLA¡ Muchas gracias, podrías por favor explicarme esta instrucción:

FormulaR1C1 

FormulaR1C1 es la notación cuando hacemos referencia a R (row=fila) C (columna) con respecto a la referencia de la celda donde se coloca la fórmula.

Es decir que si en E2 coloco la fórmula

"=CONCATENATE(RC[-3],RC[-2],RC[-1])"

le estoy diciendo que Concatene RC[-3] significa en la misma fila (R) y 3 columnas delante de E (C[-3]) es decir B2..... y así con el resto.

Otro modo de introducir una fórmula sería esta, donde en lugar de hacer referencia a la celda del resultado se colocan las referencias absolutas:

[E2].Formula = "=CONCATENATE(B2,C2,D2)"

Sdos!

Respuesta
2

Pon la siguiente función en un módulo de VBA

Function ConcatenaRango(rango As Range)
    For Each celda In rango
        cadena = cadena & celda.Value
    Next
    ConcatenaRango = cadena
End Function

Sigue las Instrucciones para una Función

  1. Abre tu libro de excel
  2. Para abrir VBa y poder pegar la función, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la función
  5. En cualquier celda utiliza la función, como cualquier otra función de excel

Ejemplo, pon la siguiente función en una celda, el resultado será la concatenación de las celdas H1 a la H5

=ConcatenaRango(H1:H5)

.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas