Generar un archivo pdf para cada hoja de trabajo

La idea es generar para cada hoja de trabajo un archivo PDF cuyo nombre se "arma" o se construye con texto y valores de algunas celdas. Aparentemente genera el archivo pdf pero no abre

Se tiene el siguiente fragmento de la macro:

RutaGuardar = ActiveWorkbook.Path & "\Respuestas\" & "Factura No." & Numero & " " & Nombre0 & " " & empleado & ".pdf"
ActiveWorkbook.SaveAs Filename:=RutaGuardar, FileFormat:=xlOpenXMLTemplateMacroEnabled, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close Savechanges:=True
Next

Dam, favor de corregirme para que genere pdf bien y lo pueda abrir

2 respuestas

Respuesta
1

¿Si tienes 5 hojas quieres que se generen 5 pdf?

La macro que pusiste es para guardar el archivo como excel con macros

Puedes poner la macro completa y explicar exactamente qué necesitas

Antes de esta línea:

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _

Pon el siguiente código para que el archivo sea de una hoja

    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    ActiveSheet.PageSetup.PrintArea = ""
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.708661417322835)
        .RightMargin = Application.InchesToPoints(0.708661417322835)
        .TopMargin = Application.InchesToPoints(0.748031496062992)
        .BottomMargin = Application.InchesToPoints(0.748031496062992)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With

.

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

.

Avísame cualquier duda

.

Respuesta

En un libro abierto, graba una macro guardando una hoja en formato PDF. De este modo podrás ver que parte te está fallando, pero te adelanto que FileFormat:=xlOpenXMLTemplateMacroEnabled huele a chamusquina si estamos hablando de guardar en formato PDF

Deberás comparar esta parte

 FileFormat:=xlOpenXMLTemplateMacroEnabled, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close Savechanges:=True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas