Como mejorar la macro que copia y pegado especial que carga mucho desde una hoja a otra

Favor su ayuda la macro funciona pero carga demasiado es posible mejorarla

Sub REVISION()
Application.ScreenUpdating = False
Sheets("ANALISIS").Select
'ALU
filafin = ActiveSheet.Range("A65536").End(xlUp).Row
ActiveSheet.Range("A7:A" & filafin).Copy
Sheets("REVISION").Select
Range("A6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("ANALISIS").Select
'BARRA
filafin = ActiveSheet.Range("B65536").End(xlUp).Row
ActiveSheet.Range("B7:B" & filafin).Copy
Sheets("REVISION").Select
Range("B6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("ANALISIS").Select
'MARCA
filafin = ActiveSheet.Range("D65536").End(xlUp).Row
ActiveSheet.Range("D7:D" & filafin).Copy
Sheets("REVISION").Select
Range("C6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("ANALISIS").Select
'DESCRIPCION
filafin = ActiveSheet.Range("F65536").End(xlUp).Row
ActiveSheet.Range("F7:F" & filafin).Copy
Sheets("REVISION").Select
Range("D6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("ANALISIS").Select
'STOCK
filafin = ActiveSheet.Range("G65536").End(xlUp).Row
ActiveSheet.Range("G7:G" & filafin).Copy
Sheets("REVISION").Select
Range("E6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("ANALISIS").Select
'FISICO
filafin = ActiveSheet.Range("L65536").End(xlUp).Row
ActiveSheet.Range("L7:L" & filafin).Copy
Sheets("REVISION").Select
Range("F6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("ANALISIS").Select
'DIFERENCIA
filafin = ActiveSheet.Range("M65536").End(xlUp).Row
ActiveSheet.Range("M7:M" & filafin).Copy
Sheets("REVISION").Select
Range("G6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("ANALISIS").Select
'VALOR DIFERENCIA
filafin = ActiveSheet.Range("N65536").End(xlUp).Row
ActiveSheet.Range("N7:N" & filafin).Copy
Sheets("REVISION").Select
Range("K6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("ANALISIS").Select
'DESC4
filafin = ActiveSheet.Range("E65536").End(xlUp).Row
ActiveSheet.Range("E7:E" & filafin).Copy
Sheets("REVISION").Select
Range("L6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

2 Respuestas

Respuesta
2

Tu macro tal cual la tienes realiza la copia en varios pasos por eso se alentá te propongo esta macro te hace todo en un solo paso sin necesidad de moverse entre hojas y peudes mandarla llamar dentro de cualquiera de las dos hojas dándote el mismo resultado

Sub revisa()
Set origen = Worksheets("analisis").Range("a7").CurrentRegion
With origen
    filas = .Rows.Count
    columnas = .Columns.Count
    Set destino = Worksheets("revision").Range("a7").Resize(filas, columnas + 4)
    With destino
        .Columns(1).Resize(filas, 2).Value = origen.Columns(1).Resize(filas, 2).Value
        .Columns(3).Value = origen.Columns(4).Value
        .Columns(4).Resize(filas, 2).Value = origen.Columns(6).Resize(filas, 2).Value
        .Columns(columnas + 4).Value = origen.Columns(5).Value
    End With
End With
End Sub
Respuesta

O sea, por ejemplo, la columna "L" de "Análisis" se va a la "F" de "Revisión" y largo etcetera ¿cierto? Y otra cosa, si por ejemplo la columna "A" de "Análisis el último dato de "A" está en la fila 30, en la columna "B" ¿podría estar en la 40,, y así para todo?

Abraham Valencia

Hola 

si la columna "L"se va de ANALISIS a la Columna "F" de REVISION

el largo de la columna "A" es el mismo largo para todos ,pero deben quedar como pegado especial valor adjunto ejemplo como debe quedar 

analisis                      Revision

Columna A7:A       columna A6 pegado especial valor
columna B7:B        columna B6 como texto mismo formato que origen
Columna D7:D       columna C6 pegado especial valor
columna E7:E        Columna L6 pegado especial valor
columna F7:F        columna D6 pegado especial valor
columna G7:G      columna E6 pegado especial valor


columna L7:L       columna F6 pegado especial valor
columna M7:M    columna G6 pegado especial valor
columna N7:N     columan K6 pegado especial valor

Aja, se entendió mejor. Dado lo que tienes la solución que te propone James Bond es ideal, solo debes ajustar a tus necesidades (las columnas origen y destino).

Salu2

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas