Macro para desplegar lista y seleccionar hojas para exportar a otro libro de excel

Amigos necesita una macro que me permita desplegar una lista para seleccionar varias hojas del libro y copiarlas (solo las seleccionadas) a otro libro al cual me permita colocarle nombre y elegir la ubicación de donde deseo que se guarde.

1 respuesta

Respuesta

Vamos avanzando con un formulario para seleccionar las hojas.

Revisa la siguiente respuesta y dime si es lo que necesitas

MACRO de excel para imprimir varias hojas de un mismo libro

Si es lo que necesitas, ya nada más ajustamos la instrucción, para que en lugar de imprimir, guarde las hojas en un nuevo libro.

Me comentas.

claro amigo ese lo tengo  y es excelente, pero tiene una dificultad que imprime a pdf pero hoja por hoja y no en un solo archivo en cola. ojala y mandara todo a un solo archivo pdf antes de imprimir sea en impresora o sea en pdf. 

POR OTRO LADO . 

si me gustaría que lo ajuste para que en vez de imprimir me cree otro libro que contenga las hojas seleccionadas... 

agradezco tu ayuda 

Va, genera un archivo pdf y xlsx con las hojas seleccionadas.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim hojas()
    n = -1
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            'h = ListBox1.List(i)
            'Sheets(h).PrintOut Copies:=1, Collate:=True
            n = n + 1
            ReDim Preserve hojas(n)
            hojas(n) = ListBox1.List(i)
        End If
    Next
    If n > -1 Then
        ruta = ThisWorkbook.Path & "\"
        arch = "Hojas"
        Sheets(hojas).Copy
        ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=ruta & arch & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
        ActiveWorkbook.SaveAs _
            Filename:=ruta & arch & ".xlsx", _
            FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWorkbook.Close False
        MsgBox "Archivos XLSX y PDF guardado"
    End If
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    ListBox1.MultiSelect = 1
    ListBox1.ListStyle = 1
    For Each h In Sheets
        ListBox1.AddItem h.Name
    Next
End Sub

.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas