Hello,
I have a program that creates a dynamic output sheet depending on how many inputs are put into the program. I want to make a program that automatically prints the output sheet into a PDF for the simplicity of the user and that way the document it creates is correctly formatted every time it is run. The code I have as of right now is very barebones as I've never worked with printing into a PDF before. The point I am at right now is the program runs and can print the areas into a PDF but it only prints titlePage range into the PDF. I want titlePage, secondArea, thirdArea, totalPage, notesPage, etc to all be set on separate pages.
Appreciate any help.
(I realize some of this code is unnessecary and can be trimmed but I have other plans for the named ranges later once I get the print function figured out.)
I have a program that creates a dynamic output sheet depending on how many inputs are put into the program. I want to make a program that automatically prints the output sheet into a PDF for the simplicity of the user and that way the document it creates is correctly formatted every time it is run. The code I have as of right now is very barebones as I've never worked with printing into a PDF before. The point I am at right now is the program runs and can print the areas into a PDF but it only prints titlePage range into the PDF. I want titlePage, secondArea, thirdArea, totalPage, notesPage, etc to all be set on separate pages.
Appreciate any help.
(I realize some of this code is unnessecary and can be trimmed but I have other plans for the named ranges later once I get the print function figured out.)
Code:
Sub PrintPDF()
Dim fileNamee As String
Dim titlePage, totalPage, notesPage, secondArea, thirdArea, fourthArea, fifthArea, sixthArea, seventhArea, eighthArea, ninthArea, tenthArea As Range
'Clear PrintArea
ActiveSheet.PageSetup.PrintArea = False
'Set page ranges to inital values
Set titlePage = Range("A1:H44")
Set secondArea = Nothing
Set thirdArea = Nothing
Set fourthArea = Nothing
Set fifthArea = Nothing
Set sixthArea = Nothing
Set seventhArea = Nothing
Set eighthArea = Nothing
Set ninthArea = Nothing
Set tenthArea = Nothing
'Set inital PrintArea to titlePage
ActiveSheet.PageSetup.PrintArea = titlePage.Address
'Select output pages depending on Input Page
Select Case areaCount
Case 1
Set totalPage = Range("A46:H71")
Set notesPage = Range("A73:H84")
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
Case 2
Set totalPage = Range("A83:H108")
Set notesPage = Range("A110:H21")
Set secondArea = Range("A46:H81")
ActiveSheet.PageSetup.PrintArea = secondArea.Address
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
Case 3
Set totalPage = Range("A120:H145")
Set notesPage = Range("A147:H158")
Set secondArea = Range("A46:H81")
Set thirdArea = Range("A83:H118")
ActiveSheet.PageSetup.PrintArea = secondArea.Address
ActiveSheet.PageSetup.PrintArea = thirdArea.Address
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
Case 4
Set totalPage = Range("A157:H182")
Set notesPage = Range("A184:H195")
Set secondArea = Range("A46:H81")
Set thirdArea = Range("A83:H118")
Set fourthArea = Range("A120:H155")
ActiveSheet.PageSetup.PrintArea = secondArea.Address
ActiveSheet.PageSetup.PrintArea = thirdArea.Address
ActiveSheet.PageSetup.PrintArea = fourthArea.Address
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
Case 5
Set totalPage = Range("A194:H219")
Set notesPage = Range("A221:H232")
Set secondArea = Range("A46:H81")
Set thirdArea = Range("A83:H118")
Set fourthArea = Range("A120:H155")
Set fifthArea = Range("A157:H192")
ActiveSheet.PageSetup.PrintArea = secondArea.Address
ActiveSheet.PageSetup.PrintArea = thirdArea.Address
ActiveSheet.PageSetup.PrintArea = fourthArea.Address
ActiveSheet.PageSetup.PrintArea = fifthArea.Address
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
Case 6
Set totalPage = Range("A231:H256")
Set notesPage = Range("A258:H269")
Set secondArea = Range("A46:H81")
Set thirdArea = Range("A83:H118")
Set fourthArea = Range("A120:H155")
Set fifthArea = Range("A157:H192")
Set sixthArea = Range("A194:H229")
ActiveSheet.PageSetup.PrintArea = secondArea.Address
ActiveSheet.PageSetup.PrintArea = thirdArea.Address
ActiveSheet.PageSetup.PrintArea = fourthArea.Address
ActiveSheet.PageSetup.PrintArea = fifthArea.Address
ActiveSheet.PageSetup.PrintArea = sixthArea.Address
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
Case 7
Set totalPage = Range("A268:H293")
Set notesPage = Range("A295:H306")
Set secondArea = Range("A46:H81")
Set thirdArea = Range("A83:H118")
Set fourthArea = Range("A120:H155")
Set fifthArea = Range("A157:H192")
Set sixthArea = Range("A194:H229")
Set seventhArea = Range("A231:H266")
ActiveSheet.PageSetup.PrintArea = secondArea.Address
ActiveSheet.PageSetup.PrintArea = thirdArea.Address
ActiveSheet.PageSetup.PrintArea = fourthArea.Address
ActiveSheet.PageSetup.PrintArea = fifthArea.Address
ActiveSheet.PageSetup.PrintArea = sixthArea.Address
ActiveSheet.PageSetup.PrintArea = seventhArea.Address
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
Case 8
Set totalPage = Range("A305:H330")
Set notesPage = Range("A332:H343")
Set secondArea = Range("A46:H81")
Set thirdArea = Range("A83:H118")
Set fourthArea = Range("A120:H155")
Set fifthArea = Range("A157:H192")
Set sixthArea = Range("A194:H229")
Set seventhArea = Range("A231:H266")
Set eighthArea = Range("A268:H303")
ActiveSheet.PageSetup.PrintArea = secondArea.Address
ActiveSheet.PageSetup.PrintArea = thirdArea.Address
ActiveSheet.PageSetup.PrintArea = fourthArea.Address
ActiveSheet.PageSetup.PrintArea = fifthArea.Address
ActiveSheet.PageSetup.PrintArea = sixthArea.Address
ActiveSheet.PageSetup.PrintArea = seventhArea.Address
ActiveSheet.PageSetup.PrintArea = eighthArea.Address
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
Case 9
Set totalPage = Range("A342:H367")
Set notesPage = Range("A369:H380")
Set secondArea = Range("A46:H81")
Set thirdArea = Range("A83:H118")
Set fourthArea = Range("A120:H155")
Set fifthArea = Range("A157:H192")
Set sixthArea = Range("A194:H229")
Set seventhArea = Range("A231:H266")
Set eighthArea = Range("A268:H303")
Set ninthArea = Range("A305:H340")
ActiveSheet.PageSetup.PrintArea = secondArea.Address
ActiveSheet.PageSetup.PrintArea = thirdArea.Address
ActiveSheet.PageSetup.PrintArea = fourthArea.Address
ActiveSheet.PageSetup.PrintArea = fifthArea.Address
ActiveSheet.PageSetup.PrintArea = sixthArea.Address
ActiveSheet.PageSetup.PrintArea = seventhArea.Address
ActiveSheet.PageSetup.PrintArea = eighthArea.Address
ActiveSheet.PageSetup.PrintArea = ninthArea.Address
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
Case 10
Set totalPage = Range("A379:H404")
Set notesPage = Range("A406:H417")
Set secondArea = Range("A46:H81")
Set thirdArea = Range("A83:H118")
Set fourthArea = Range("A120:H155")
Set fifthArea = Range("A157:H192")
Set sixthArea = Range("A194:H229")
Set seventhArea = Range("A231:H266")
Set eighthArea = Range("A268:H303")
Set ninthArea = Range("A305:H340")
Set tenthArea = Range("A342:H377")
ActiveSheet.PageSetup.PrintArea = secondArea.Address
ActiveSheet.PageSetup.PrintArea = thirdArea.Address
ActiveSheet.PageSetup.PrintArea = fourthArea.Address
ActiveSheet.PageSetup.PrintArea = fifthArea.Address
ActiveSheet.PageSetup.PrintArea = sixthArea.Address
ActiveSheet.PageSetup.PrintArea = seventhArea.Address
ActiveSheet.PageSetup.PrintArea = eighthArea.Address
ActiveSheet.PageSetup.PrintArea = ninthArea.Address
ActiveSheet.PageSetup.PrintArea = tenthArea.Address
ActiveSheet.PageSetup.PrintArea = totalPage.Address
ActiveSheet.PageSetup.PrintArea = notesPage.Address
End Select
'Print to PDF
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
fileName:=ActiveWorkbook.Path & "\Output.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub