Tengo una base de datos en excel con 130 columnas de las cuales solo requiero 15 y quiero copiarlas a otra hoja

Dante Amor

Vi una pregunta parecida, la cual tu usaste un código que es este,

Sub Macro1()
'copia columnas a la hoja2
Sheets("comprobantes").Select
Range("BF:BF,F:F,D:D,AZ:AZ,BA:BA,S:S,BT:BT,BW:BW,BX:BX,C:C,V:V,T:T,K:K,X:X,H:H,J:J").Select
Selection.Copy
Sheets("Formato_Ingresos").Select
ActiveSheet.Paste
End Sub

No me las pega en orden, además de que si no selecciono toda la hoja no pega los datos sale el error "se ha producido el error 1004 no se puede pegar esto aquí por que el área de copiar y el área de pegado no tienen el mismo tamaño. Si selecciono la hoja desde la esquina entonces ya me deja pegar pero salen desordenadas.

2 Respuestas

Respuesta
1

Supongo que quieres pegar las columnas en el orden seleccionado, para eso ocupa la siguiente macro:

Sub copiar_Columnas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    cols = Array("BF", "F", "D", "AZ", "BA", "S", "BT", "BW", "BX", "C", "V", "T", "K", "X", "H", "J")
    Set h1 = Sheets("comprobantes")
    Set h2 = Sheets("Formato_Ingresos")
    For i = LBound(cols) To UBound(cols)
        h1.Columns(cols(i)).Copy h2.Cells(1, i + 1)
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Puedes ejecutar la macro en cualquiera de las 2 hojas.

.

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

.

Avísame cualquier duda

.

¡Gracias! Dante Amor 

Siempre ayudando a los nuevos en esto de la programación. 

Respuesta
1

Te falto solo elegir desde donde epieza a pegar las columna

Mi este caso desde al celda a1 hasta la ultima columna por pegar

Sub Macro1()
'copia columnas a la hoja2
Sheets("comprobantes").Select
Range("BF:BF,F:F,D:D,AZ:AZ,BA:BA,S:S,BT:BT,BW:BW,BX:BX,C:C,V:V,T:T,K:K,X:X,H:H,J:J").Select
Selection.Copy
Sheets("Formato_Ingresos").Select
range("a1").select 
ActiveSheet.Paste
End Sub

si te silve no olvides valora para cerrar la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas