Concatenar variables usando imputbox

Buenas tardes
Me encuentro elaborando una macro en excel, pero he tenido inconvenientes en lo siguiente:
Necesito desarrollar un código en vba para excel que me permita capturar las referencias de varias celdas (ubicadas sobre la misma fila pero en diferentes columnas) en distintas variables, y que posteriormente en otra celda la macro realice una fórmula concatenando los valores almacenados en las variables, que deben corresponder a las referencias de las celdas que se deben concatenar y no al contenido de las mismas....
He estado tratando de realizar dicho trabajo utilizando inputbox, pero hasta el momento no me ha funcionado...
El código que he estado tratando de utilizar es el siguiente:
Sub Crear_código_único()
Dim Var1 As String
Dim Var2 As String
Dim Var3 As String
Dim Var4 As String
Dim Var5 As String
Dim Column1 As Range
Dim Column2 As Range
Dim Column3 As Range
Dim Column4 As Range
Var1 = InputBox("Por favor indique la celda de referencia, a partir de la cual se insertara la columna de código único")
Range(Var1).Select
Selection.EntireColumn.Insert
ActiveCell.Offset.Value = "CÓDIGO ÚNICO"
ActiveCell.Offset(1, 0).Select
Set Column1 = Application.InputBox("Seleccione la primera columna a concatenar", Type:=8)
Var2 = Column1.Address
Set Column2 = Application.InputBox("Seleccione la segunda columna a concatenar", Type:=8)
Var3 = Column2.Address
Set Column3 = Application.InputBox("Seleccione la tercera columna a concatenar", Type:=8)
Var4 = Column3.Address
Set Column4 = Application.InputBox("Seleccione la cuarta columna a concatenar", Type:=8)
Var5 = Column4.Address
ActiveCell.FormulaR1C1 = Var2 & " - " & Var3 & " - " & Var4 & Var5
Selection.End(xlDown).Select
ActiveCell.Offset(0, -1).Select
Selection.End(xlUp).Select
End Sub
De antemano muchas gracias por la ayuda que me puedan brindar

1 Respuesta

Respuesta
1

Con tu código hasta la línea de la fórmula obtenés algo así en la celda destino:

$G$2 - $I$2 - $K$2-$M$2

(Le agregué un guión que te faltó entre las variables 4 y 5)

¿Es esto lo que necesitás? ¿Podes dejar un ejemplo de cómo o qué debe verse en la celda?

Hola

Elsa Matilde

Lo que en realidad intento hacer es formar un código único, a partir de la unión de varias celdas que se encuentran ubicadas a lo largo de la misma fila, pero en diferentes columnas.

Es sabido que dicha tarea se puede llevar a cabo con la función concatenar de excel o con el carácter "&".

La macro que intento desarrollar debe preguntarme que celdas voy a concatenar, para así poder seleccionarlas o capturarlas en pantalla mediante un cuadro de texto o inputbox.

La referencia de las celdas a concatenar que sean indicadas por el usuario de la macro, supongo que deben quedar almacenadas en variables.

posteriormente en otra celda la macro debe hacer la fórmula de concatenar con las referencias de las celdas indicadas por el usuario de tal forma que se visualice la fórmula de concatenar como tal, es decir algo así como

= "=CONCATENATE(C4; "" - "";G4; "" - ""; J4; M4)" , más NO el resultado de la concatenación o union de cadenas de texto con el contenido de las celdas.

La razón por la cual necesito que me quede la fórmula de concatenación, es que debo extender la misma hacia abajo, de tal forma que la macro realice en la totalidad de filas de la tabla la misma formulación.

Muchas gracias por tu ayuda y espero haberme explicado...

Esta sería la instrucción entonces:

ActiveCell.Formula = "=CONCATENATE(" & Var2 & ","" - ""," & Var3 & ","" - ""," & Var4 & ","" - ""," & Var5 & ")"

Ahora, si vas a arrastrarla seguramente no necesitas que las referencias sean absolutas (del tipo $A$5) sino relativas (x ej: A5)

Si es así, entonces debes dejar las líneas de las variables así:

Var2 = Column1.Address(False, False)

Podés hacer una combinación entre True, False o False, True según lo que necesitas mantener absoluto-

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas