Como guardar una hoja en especifico de Excel en formato PDF y una copia de esa misma hoja en formato .xls

Tengo un libro en excel con 3 hojas en uso, "hoja1", "hoja2", "hoja3", y necesito guardar solo la "hoja1" en formato "PDF" y al mismo tiempo una copia de esa misma "hoja1" en formato ".xls" en una dirección y una carpeta en específico... Necesito ayuda para saber cómo se puede hacer eso mediante una macro?

2 Respuestas

Respuesta
2

H o l a: Te anexo 3 versiones para tu excel.

Si tu excel es versión 2007 o superior y quieres guardar el excel como xlsx:

Sub Guardar_Hoja_Pdf_Xls_2007()
'---
'   Por.Dante Amor
'---
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    ruta = "C:\trabajo\"
    arch = "archivo1"
    h1.Copy
    'guarda archivo como versión 2007
    ActiveWorkbook.SaveAs _
        Filename:=ruta & arch & ".xlsx", _
        FileFormat:=xlOpenXMLWorkbook
    '
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & arch & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    ActiveWorkbook.Close
    Application.ScreenUpdating = True
    MsgBox "Guardados Archivos Pdf y xlsx"
End Sub

Si tu excel es 2007, pero quieres guardar el excel como xls (2003), entonces:

Sub Guardar_Hoja_Pdf_Xls_2007b()
'---
'   Por.Dante Amor
'---
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    ruta = "C:\trabajo\"
    arch = "archivo1"
    h1.Copy
    'guarda archivo como versión 2003
    ActiveWorkbook.SaveAs _
        Filename:=ruta & arch & ".xls", _
        FileFormat:=xlExcel8
    '
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & arch & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    ActiveWorkbook.Close
    Application.ScreenUpdating = True
    MsgBox "Guardados Archivos Pdf y xlsx"
End Sub

Si tu excel es 2003, entonces:

Sub Guardar_Hoja_Pdf_Xls_2003()
'---
'   Por.Dante Amor
'---
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    ruta = "C:\trabajo\"
    arch = "archivo1"
    h1.Copy
    'guarda versión 2003
    ActiveWorkbook.SaveAs _
        Filename:=ruta & arch & ".xls", _
        FileFormat:=xlNormal
    '
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & arch & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    ActiveWorkbook.Close
    Application.ScreenUpdating = True
    MsgBox "Guardados Archivos Pdf y xlsx"
End Sub

Cambia en cualquier macro que vayas a utilizar "archivo1", por el nombre que quieras que lleven los archivos guardado.

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

Gracias por tu ayuda Dante Amor, si hace lo que quería, pero ahora lo que pasa que al momento de convertir en PDF no se guarda la hoja completa como yo quisiera.... Como se hace para que se pueda guardar toda la hoja ???? el rango de la hoja es A1:G50 

Para guardar la hoja como quieres, seleccionar el rango de A1 a G50, selecciona del Menú, Diseño de página, Área de impresión, Establecer área de impresión. Ahora presiona Configurar página, selecciona la opción "Ajustar a 1 página de ancho por 1 de alto. Presiona Aceptar.

Listo, genera el pdf y solamente mostrará una hoja, con el rango de A1 a G50

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

El ejemplo que paso, si bien envía mail con excel, la primer parte crea una copia del archivo en pdf y xlsx que es lo que n

https://youtu.be/sTJK_zm8nOM
http://www.programarexcel.com/2015/11/macro-copia-varias-hojas-y-guarda-como.html 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas