Copiar varias Columnas en una sola columna hoja de excel

Quisiera saber si alguien puede ayudarme con esta macro que intento realizar, tengo varios datos en diferentes columnas, lo que intento hacer es copiar la primera columna todos los datos que pueda tener y pegarlos en otra hoja en la Columna A, seguidamente copiar la segunda columna y copiar pero desde la ultima celda que tenga la misma columna A.

Espero haberme explicado bien, Gracias de antemano adjunto el excel de ejemplo que deseo hacer

1 Respuesta

Respuesta
1

 H o  l a:

Te anexo la maco. Cambia en la macro "Hoja1" y "Hoja2" por los nombres de tus hojas. Cambia "F" por la letra de la última columna que quieras copiar.

Sub CopiarColumnas()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h2.Columns("A").ClearContents
    '
    For i = 1 To Columns("F").Column
        u1 = h1.Cells(Rows.Count, i).End(xlUp).Row
        u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
        h1.Range(h1.Cells(1, i), h1.Cells(u1, i)).Copy h2.Range("A" & u2)
    Next
    MsgBox "Copia termianda"
End Sub

Hola Dante, gracias por la ayuda, pero olvide indicar algo más, cada columna tiene un encabezado y otros datos, quiere decir quiero copiar a partir de una celda hacia abajo y las siguientes también, y el contenido de cada celda contiene fórmulas y solo quiero copiar los resultados.

En la macro que me mandas copia todas las columnas por completo incluyendo las fórmulas.

Espero puedas ayudarme y gracias por tu tiempo empleado.

H o l a:

Pero sigues sin indicar a partir de cuál celda hacia abajo se debe copiar.

Te la macro actualizada, copia información a partir de la fila 2. Si quieres que copie a partir de otra fila cambia en la macro el 2 por otro número en esta instrucción:

H1. Range(h1. Cells(2, i), h1. Cells(u1, i)). Copy



Sub CopiarColumnas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h2.Columns("A").ClearContents
    '
    For i = 1 To Columns("F").Column
        u1 = h1.Cells(Rows.Count, i).End(xlUp).Row
        u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
        h1.Range(h1.Cells(2, i), h1.Cells(u1, i)).Copy
        h2.Range("A" & u2).PasteSpecial Paste:=xlValues
    Next
    MsgBox "Copia termianda"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas