Modificar Macro para exportar datos

Tengo la siguiente macro para exportar datos y necesito que me traspase los meses a las nuevas hojas, sin embargo con este código sólo traspasa el mes de noviembre, ¿cómo la debería modificar para que traspase cada mes?

Sub exportData()
    Dim lr As Long
    Workbooks.Open Filename:="C:\Users\adiaz\Escritorio\PRUEBA MACRO 2\STATUSS\STATUS 2017.xlsx"
    Workbooks("Status_naves_docs_Znorte Uk_2017.xlsx").Activate
    Sheets("ENERO 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("FEBRERO 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("MARZO 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("ABRIL 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("MAYO 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("JUNIO 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("JULIO 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("AGOSTO 2017").Select
    Sheets("SEPTIEMBRE 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("OCTUBRE 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("NOVIEMBRE 2017").Select
    lr = Range("A" & Rows.Count).End(xlUp).Row + 1
    Range("A1:W" & lr).Copy
    Workbooks("STATUS 2017.xlsx").Activate
    Sheets("HOJA1").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA2").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA3").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA4").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA5").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA6").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA7").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA8").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA9").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA10").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Sheets("HOJA11").Select
    Range("A1").PasteSpecial Paste:=xlPasteAll
    Application.CutCopyMode = False 'esp
End Sub

1 respuesta

Respuesta
2

Tienes que copiar y pegar hoja por hoja, en tu macro solamente estás copiando noviembre, por eso sólo pega noviembre.

Te anexo la macro para copiar y pegar cada hoja

Sub exportData()
'Act.Por.Dante Amor
    ruta = "C:\Users\adiaz\Escritorio\PRUEBA MACRO 2\STATUSS\"
    'ruta = ThisWorkbook.Path & "\"
    Set l1 = ThisWorkbook
    Set l2 = Workbooks("Status_naves_docs_Znorte Uk_2017.xlsx")
    Set l3 = Workbooks.Open(Filename:=ruta & "STATUS 2017.xlsx")
    '
    hojas = Array("ENERO 2017", "FEBRERO 2017", "MARZO 2017", "ABRIL 2017", "MAYO 2017", "JUNIO 2017", "JULIO 2017", _
                  "AGOSTO 2017", "SEPTIEMBRE 2017", "OCTUBRE 2017", "NOVIEMBRE 2017")
    hodes = Array("HOJA1 2017", "HOJA2 2017", "HOJA3 2017", "HOJA4 2017", "HOJA5 2017", "HOJA6 2017", "HOJA7 2017", _
                  "HOJA8 2017", "HOJA9 2017", "HOJA10 2017", "HOJA11 2017")
    '
    For h = LBound(hojas) To UBound(hojas)
        hoja = hojas(h)
        hode = hodes(h)
        u = l2.Sheets(hoja).Range("A" & Rows.Count).End(xlUp).Row + 1
        l2.Sheets(hoja).Range("A1:W" & u).Copy l3.Sheets(hode).Range("A1")
    Next
    MsgBox "Fin Exportar Data"
End Sub
'

.

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

.

Avísame cualquier duda

.

Estimado

En esta linea de la macro me arroja el siguiente error: 

Se ha producido error 9 en el tiempo de ejecución 
Subíndice fuera de intervalo 

l2.Sheets(hoja).Range("A1:W" & u).Copy l3.Sheets(hode).Range("A1")

cabe destacar que el libro que tiene toda la información contiene muchas más hojas, de hecho el año 2017 correspondería a las hojas 51 a 61, ¿es posible que por ese genere el error? 

Revisa los nombres de las hojas.

En este libro "Status_naves_docs_Znorte Uk_2017.xlsx"

Las hojas se deben llamar así:

    hojas = Array("ENERO 2017", "FEBRERO 2017", "MARZO 2017", "ABRIL 2017", "MAYO 2017", "JUNIO 2017", "JULIO 2017", _
                  "AGOSTO 2017", "SEPTIEMBRE 2017", "OCTUBRE 2017", "NOVIEMBRE 2017")

Y en este libro "STATUS 2017.xlsx" las hojas se deben llamar así:

    hodes = Array("HOJA1 2017", "HOJA2 2017", "HOJA3 2017", "HOJA4 2017", "HOJA5 2017", "HOJA6 2017", "HOJA7 2017", _
                  "HOJA8 2017", "HOJA9 2017", "HOJA10 2017", "HOJA11 2017")

Los nombres de las hojas los tomé de tu macro.

Es por eso que envía un error de subíndice

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas