Enviar a otro libro Excel dos hojas del libro principal

Me dirijo a ti porque me ayudaste con este código y ahora que lo quiere complicar no veo la forma de hacerlo.

Tengo un formulario donde al darle click a un botón envío a otro libro Excel el contenido de una hoja Excel. Ahora quisiera enviar al mismo libro otra hoja con el contenido de otra hoja del libro principal.

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
'Enviamos a otra hoja Excel la hoja Listados
  'Guardar los datos de la hoja "listados"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    periodo = subform_CondPeriodo.TextCondPeriodo
    Set l1 = ThisWorkbook
    Set h1 = Sheets("MATR_DISP")
    u = h1.Range("AD" & Rows.Count).End(xlUp).Row
    Set l2 = Workbooks.Add
    Set h2 = l2.Sheets(1)
    h1.Range("AD2:AQ" & u).Copy h2.Range("A1")
    '
    With Application.FileDialog(msoFileDialogSaveAs)
        .Title = "Guardar archivo como"
        .AllowMultiSelect = False
        .InitialFileName = "Listado Conductores en Periodo " & periodo
        .FilterIndex = 1
        If .Show Then
            arch = .SelectedItems(1)
            l2.SaveAs Filename:=arch, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
            l2.Close
        End If
    End With
End Sub

Con este código enviamos el contenido de la hoja "MATR_DISP" en los rangos AD2 al final de AQ a un libro nuevo y luego lo guardamos con un cuadro de diálogo. Lo que quisiera es aprovechar ese libro nuevo e incluir el contenido de la hoja "Previsiones" en los rangos A1 a M30, donde tengo una tabla dinámica que me interesa enviar en el libro nuevo.

He hecho pruebas pero no consigo que salga bien.

1 Respuesta

Respuesta
1

Te anexo la macro actualizada

Private Sub CommandButton2_Click()
'
'   Por Dante Amor
'
    '
    'Enviamos a otra hoja Excel la hoja Listados
    'Guardar los datos de la hoja "listados"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.SheetsInNewWorkbook = 2
    '
    periodo = subform_CondPeriodo.TextCondPeriodo
    Set l1 = ThisWorkbook
    Set h1 = Sheets("MATR_DISP")
    Set h11 = Sheets("Previsiones")
    '
    u = h1.Range("AD" & Rows.Count).End(xlUp).Row
    Set l2 = Workbooks.Add
    Set h2 = l2.Sheets(1)
    Set h22 = l2.Sheets(2)
    h1.Range("AD2:AQ" & u).Copy h2.Range("A1")
    h11.Range("A1:M30").Copy h22.Range("A1")
    '
    With Application.FileDialog(msoFileDialogSaveAs)
        .Title = "Guardar archivo como"
        .AllowMultiSelect = False
        .InitialFileName = "Listado Conductores en Periodo " & periodo
        .FilterIndex = 1
        If .Show Then
            arch = .SelectedItems(1)
            l2.SaveAs Filename:=arch, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
            l2.Close
        End If
    End With
    MsgBox "Libro creado"
End Sub

.

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

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas