H o l a:
Te anexo la macro para generar todas las hojas en un solo PDF. La macro funciona para que la ejecutes en la versión de excel 2007.
La macro tiene que establecer que la impresión será solamente de una hoja, es por eso que puede tardar varios minutos para hacerlo con 100 registros; es por eso que puse un contador en la barra de estatus, para que observes cuántos registros se han procesado.
Private Sub CommandButton1_Click()
'Por.Dante Amor
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.SheetsInNewWorkbook = 1
Application.StatusBar = False
'
Set l1 = ThisWorkbook
Set h1 = l1.Sheets("Hoja1")
Set h2 = l1.Sheets("Hoja2")
Set l2 = Workbooks.Add
RutaArchivo = "C:\Escritorio\PDF\FICHERO1.PDF"
RutaArchivo = "C:\Trabajo\FICHERO1.PDF"
RutaArchivo2 = "C:\Trabajo\FICHERO1.xlsx"
'
u = h1.Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To u
Application.StatusBar = "Procesando el registro: " & i & " de " & u
h1.Rows(i).Copy h2.Rows(3)
h2.Range("A6:K61").Copy
l2.Sheets.Add after:=Sheets(l2.Sheets.Count)
Set h3 = l2.ActiveSheet
h3.[A1].PasteSpecial Paste:=xlValues
h3.[A1].PasteSpecial Paste:=xlFormats
h3.[A1].PasteSpecial Paste:=xlPasteColumnWidths
'
h3.PageSetup.PrintArea = "A1:K56"
'
res h3
Next
l2.SaveAs Filename:=RutaArchivo2, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
'
l2.ExportAsFixedFormat Type:=xlTypePDF, Filename:=RutaArchivo, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
l2.Close
Application.ScreenUpdating = True
Application.StatusBar = False
MsgBox "Archivo pdf creado"
End Sub
Sub res(h3)
With h3.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
.PaperSize = xlPaperLetter
.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
End Sub
':)
'S aludos. D a n t e A m o r . R ecuerda valorar la respuesta. G racias
':)