¿Cómo crear una macro en excel que permita guardar dos hojas del mismo en un solo pdf?

Necesito crear una macro en excel que me permita guardar e imprimir dos o mas hojas del mismo excel en un solo pdf..

Es decir crear un solo pdf que contenga las dos hojas del excel en el que estoy trabajando!

1 Respuesta

Respuesta
1

H o l a : 

Si solamente tienes 2 hojas en el libro, o si quieres que todas las hojas que están en el libro se guarden en un pdf, utiliza esta macro:

Sub Guardar_Libro_En_Pdf()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    ruta = l1.Path & "\"
    arch = "nombrepdf"
    Sheets(hojas).Copy
    l1.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & arch & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    MsgBox "archivo pdf guardardo"
End Sub

Si el libro tiene más hojas y quieres especificar solamente 2 hojas, entonces utiliza la siguiente macro:

Sub Guardar_Hojas_En_Pdf()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    hojas = Array("Hoja2", "Hoja3")
    ruta = l1.Path & "\"
    arch = "nombrepdf"
    Sheets(hojas).Copy
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & arch & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    ActiveWorkbook.Close False
    MsgBox "archivo pdf guardardo"
End Sub

Cambia en la macro "Hoja2" y "Hoja3" por los nombres de las hojas que quieras guardar. Si quieres agregar otra hoja, entonces modifica la línea, por ejemplo:

 Hojas = Array("Hoja2", "Hoja3", "Hoja4")

El nombre que pongas en la línea debe ser exactamente igual a como lo tienes en la hoja de excel.


En la macro que vayas a utilizar cambia "nombrepdf" por el nombre que quieras para el archivo pdf.

El archivo se guardará en la misma carpeta donde tienes tu libro de excel.


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

Te anexo la macro 2 con un cambio:

Sub Guardar_Libro_En_Pdf()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    ruta = l1.Path & "\"
    arch = "nombrepdf"
    l1.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & arch & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    MsgBox "archivo pdf guardardo"
End Sub

Avísame si tienes alguna duda.

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

Disculpa !

No tengo conocimiento del tema así que tengo dudas..

De los códigos que me enviaste tomare el primero ya que solo tengo dos hojas.. ¿para colocarlo selecciono VBA cver código y lo coloco en la pantalla que se abre?

Si es así me envía un error que dice ** subíndice fuera del intervalo.. Espero tu respuesta

Gracias!

Perdona, cometí un error, el código correcto es este:

Sub Guardar_Libro_En_Pdf()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    ruta = l1.Path & "\"
    arch = "nombrepdf"
    l1.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & arch & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    MsgBox "archivo pdf guardardo"
End Sub

Cambia en la macro "nombrepdf" por el nombre que quieras que tenga el archivo.

Avísame cualquier duda y con gusto la reviso.

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

woou ! Listo!

Pero ahora si yo quisiera al querer guardar colocar el nombre que yo quiera.. no se si me explique .. Me aparezca una ventana como en excel al querer guardar un archivo y colocar el nombre que yo guste

Utiliza la siguiente:

Sub Guardar_Libro_En_Pdf()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    ruta = l1.Path & "\"
    '
    With Application.FileDialog(msoFileDialogSaveAs)
        .Title = "Guardar archivo como Pdf"
        .AllowMultiSelect = False
        .InitialFileName = ruta
        .FilterIndex = 25
        If Not .Show Then Exit Sub
        arch = .SelectedItems(1)
    End With
    l1.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=arch, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    MsgBox "archivo pdf guardardo"
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas