Copiar columnas especificas de una hoja a otra EXCEL

Quisiera que me ayúdenme con este asunto:

Tengo una hoja en excel el cual contiene fórmulas tiene formato tabla, pero quisiera que se copie mediante una macro unas columnas en especifico en otra hoja que ya existe, es decir:

Tengo en la hoja1 las columnas de A5 al infinito hasta inifinito la AD5 hasta inifinito quisiera que se copien las columnas ejem. B, A, I, H, C, QUE entre otras pero en un orden definido por mi hacia la hoja2 desde A1, grabé una macro que copia pero lleva todo el formato como tabla y con las fórmulas, eso no es lo que quiero ni mucho menos copia en el orden que yo elegí, quisiera una sugerencia del caso.

1 respuesta

Respuesta
1

Te anexo la macro

Sub CopiarColumnas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    cols = Array("B", "A", "I", "H", "C", "Q")  'columnas
    Set h1 = Sheets("Hoja1")                    'hoja origen
    Set h2 = Sheets("Hoja2")                    'hoja destino
    h2.Cells.ClearContents
    k = 1
    For j = LBound(cols) To UBound(cols)
        h1.Columns(cols(j)).Copy
        h2.Columns(k).PasteSpecial xlValues
        k = k + 1
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

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

Perfecto quedo excelente DAM, una consulta adicional, en la hoja de origen tengo como primeras filas 3 campos que tienen fórmulas y los datos comienzan a partir de la fila 5 "encabezados" y fila 6 "primer registro" en adelante, quisiera que copie a a partir de la fila 5 y que copie en la hoja destino desde A1 en adelante, muchas gracias por el apoyo... =D

Actualizada

Sub CopiarColumnas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    cols = Array("B", "A", "I", "H", "C", "Q")  'columnas
    Set h1 = Sheets("Hoja1")                    'hoja origen
    Set h2 = Sheets("Hoja2")                    'hoja destino
    h2.Cells.ClearContents
    k = 1
    For j = LBound(cols) To UBound(cols)
        u = h1.Cells(Rows.Count, cols(j)).End(xlUp).Row
        h1.Range(h1.Cells(5, cols(j)), h1.Cells(u, cols(j))).Copy
        h2.Cells(1, k).PasteSpecial xlValues
        k = k + 1
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas