Macro para seleccionar datos de la ultima columna y copiarlos?

Necesito una macro que me identifique la ultima columna que he añadido y me copie los valores de esa columna nueva, para pegarlos en otra celda.

2 respuestas

Respuesta
1

Por ejemplo, si agregas un dato en la celda D4, entonces la última columna es la "D", pero necesito que me digas en cuál fila vas a agregar datos. Puede ser que siempre agregues datos en la fila 2, entonces si agregas un dato en la E2, puedo revisar toda la fila 2 y encontrar que la última columna es la E.

Luego si agregas un dato en la M2, otra vez reviso la fila 2 y encontrar que la última columna con datos es la M.

Sería más sencillo si me dices en cuál fila siempre vas a poner un dato.

Ahora si la fila puede variar, entonces, buscaré la última columna que haya tenido datos y luego recorrer hacia la izquierda hasta encontrar una columna con datos, bueno eso algo más complicado.

Por último dime, qué rango quieres copiar de la columna y exactamente en cuáles celdas quieres pegar.

la columna que quiero añadir es en la fila 42, actualmente tengo la columna G con datos, cuando añada otra sera la H  el rango de celdas que quiero copiar de la nueva columna son Range("P45:P47,P50:P53,P56:P59,P62:P64")

Gracias!!1

Reviso la fila 42, me encuentro con que la última columna de datos es la "P" (puede ser cualquiera, pero para utilizar un ejemplo, supongamos que es la columna "P"), entonces copio los datos que están en "P45:P47, P50:P53, P56:P59, P62:P64"

¿Pero no me has dicho en dónde los pego?

¿Los voy a pegar en otra hoja? ¿Cómo se llama la otra hoja?

Los voy a pegar seguidos, es decir, el dato de p45 a p47 los pego seguidos uno después del otro, ¿y después del dato de p47 pongo los datos de p50 a p53?

¿Es importante que digas en dónde quieres el pegado?

Los voy a pegar en la columna u de la misma hoja en la fila 50 

Es extraña la solicitud.

Si en la columna U fila 42 tienes datos, lo que sea, entonces la última columna no es la G ni la H, es la U.

Pero voy a darte la macro, la macro revisa la fila 42 y obtiene la última columna con datos de la fila 42.

Copia el rango y lo pega a partir de la celda U50

Sub Copiar_Celdas()
'Por.Dante Amor
    uc = Cells(42, Columns.Count).End(xlToLeft).Column
    l = Evaluate("=SUBSTITUTE(ADDRESS(1," & uc & ",4),""1"","""")")
    Range(l & "45:" & l & "47," & l & "50:" & l & "53," & _
          l & "56:" & l & "59," & l & "62:" & l & "64").Copy Range("U50")
End Sub

Avísame si tienes alguna duda, si no es lo que necesitas, entonces pon unas imágenes de lo que tienes y de lo que esperas como resultado.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

La información si esta en la columna G en la fila 42 lo que pasa es que voy a copi5o los valores de la última que voy añadir es decir que si pongo la nuEva columna los valores que voy copiar y pegar en la columna u 42 será los de la columna H que es la nueva columna, no se si me hice entender mejor.

La información se puede pegar en cualquier fila de la columna u. Puedes ser la 42 o la 50 o cualquier otra fila.

La verdad es que no te he entendido, por eso te he preguntado varias veces cuál es para ti la última columna.

Ya me dijiste que tu última columna es la que tenga datos en la fila 42.

Entonces prueba la macro y me comentas.

Deberás tener tus datos algo así, según mi imagen la última columna con datos sobre la fila 42, es la columna G, entonces tomo los datos de la columna G y los pego en la celda U50 hacia abajo.

Si no es así y no te funciona la macro, entonces trata de explicar con imágenes qué tienes y qué esperas como resultado.

No entiendo qué quieres copiar ni en dónde lo quieres pegar.

Envíame un archivo con 2 hojas.

En la hoja 1 me pones la información antes de copiar y pegar.

En la hoja 2 me pones cómo quieres la información después de copiar y pegar.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Estefania Jaramillo” y el título de esta pregunta.

Respuesta
1

Creo de esta manera lo puedes hacer te buscara la ultima fila con datos en la hoja1

Luego la copiara en la hoja2 en la fila 1 solo debes adaptarla a lo que necesitas

Private Sub CommandButton1_Click()
Dim fila, final As Integer
fila = 2
Do While Hoja1.Cells(fila, 1) <> Empty
    fila = fila + 1
Loop
final = fila - 1
Hoja1.Cells(final, 1).EntireRow.Select
Selection.Copy
Hoja2.Select
Hoja2.Cells(1, 1).EntireRow.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas