Que macro usar para concatenar celda contigua

Estoy trabajando en un excel y me gustaría añadir una macro para completar mi archivo. He gravado la macro con unas celdas fijas, pero me gustaría ponerla de forma automática ya que no siempre las celdas van a estar en la misma posición. A ver si me explico: necesitaría en la celda Ax usar la fórmula concatenar(“texto”;Ax+1). La celda activa la encuentro desplazando, pero no se como referirme a la celda contigua

2 respuestas

Respuesta
1

Puedes explicarlo con algún ejemplo real.

Es decir, debes proporcionar 3 datos:

1. En cuál columna vas a capturar datos.

2. En cuál columna quieres el resultado.

3. Qué quieres de resultado.

Por ejemplo, si vas a capturar datos en la columna D,

1. Dígamos en la celda D2 capturas "gato",

2. En la celda E2 quieres el resultado,

3. Resultado: "algún texto gato".

Es un ejemplo, pero para entender lo que necesitas, debes explicar los 3 datos:

1. En dónde vas a capturar,

2. En dónde quieres el resultado

3. Qué quieres de resultado.

Respuesta
1

Si vas a colocar una fórmula, la siguiente macro es la que necesitas, que se colocará en la celda activa. Dejo 2 modelos, solo debes dejar 1 de los 2 eliminando las instrucciones del otro.

Sub MacroFormula()
'x Elsamatilde
'se coloca la fórmula en celda activa
'1- Si el texto será fijo utilizar la siguiente instrucción:
    ActiveCell.FormulaR1C1 = "=CONCATENATE(""Nesi"",RC[1])"
'2- Si el texto será tomado de otra celda (x ej: E1 y no sabemos a qué distancia está de la celda activa)
    ActiveCell.FormulaR1C1 = "=CONCATENATE(R1C5,RC[1])"
End Sub

En modelo 1, con R indico que la fila es la misma y con C[1] indico que la col es 1 a derecha.

En modelo 2, como el texto está en otra celda y desconozco a cuántas filas/col está de la celda activa, con R1C5 indico que está en fila1 y col 5, o sea en E1.

Ahora, si no necesitas la fórmula sino solamente obtener el texto concatenado, esta otra macro te lo resuelve:

Sub MacroConcatena()
'x Elsamatilde
'Aquí no se coloca una fórmula sino directamente se coloca el texto resultante
ActiveCell.Value = "Nesi" & " " & ActiveCell.Offset(0, 1).Value
'o tomando el texto de otra celda, x ej: E1 sería:
ActiveCell.Value = Range("E1") & " " & ActiveCell.Offset(0, 1).Value  'dejando un espacio entre textos
' o lo que es lo mismo:
ActiveCell.Value = [E1] & " " & ActiveCell.Offset(0, 1).Value  'dejando un espacio entre textos
End Sub

Fijate que con OFFSET(fila, col) se indica a qué distancia está de la celda activa.

En este ejemplo, además dejo un espacio entre textos. Esto es opcional

Te invito a mirar el video 15 de mi canal donde encontrarás más ejemplos de cómo colocar fórmulas con VBA.

Si mi respuesta resolvió tu situación ... ¿podrías valorarla así se me quita de las 'preguntas pendientes' (lo que me resulta una verdadera molestia ;) Encontrarás opciones de Excelente o Buena debajo del mensaje)
Si te queda alguna duda podemos seguir tratándola.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas