Solved

How can I fix VBA code so that a spreadsheet exports to PDF

Posted on 2015-01-15
3
198 Views
Last Modified: 2015-01-15
Hello Experts,

Im trying to help a user in my office with a Excel 2010 spreadsheet. The spreadsheet was originally created on a MAC. There is visual basic code that allows the spreadsheet to be saved as a PDF file. I am not proficient with visual basic. When I try to run it I get Run Time 1004: Method 'SaveAs' of object' _Workbook' failed. Please see the code below:

 Sub ExportPDF()
'
' SavePDF Macro
'

'
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    ActiveWorkbook.Save
     
    'Define names
    Sheets("MonthlyReport").Select
    CurrentMonth = Sheets("DropDown").Range("L2").Value
    QuarterNumber = Sheets("DropDown").Range("L1").Value
    AttorneyName = Sheets("MonthlyReport").Range("B3").Value
    CurrentYear = Sheets("MonthlyReport").Range("B1").Value
   
    'Clear and set print areas
    Sheets("MonthlyReport").Select
    ActiveSheet.PageSetup.PrintArea = ""
    Application.Goto Reference:=QuarterNumber
    ActiveSheet.PageSetup.PrintArea = Selection.Address
   
    Sheets("Questions").Select
    ActiveSheet.PageSetup.PrintArea = ""
    Application.Goto Reference:=CurrentMonth
    ActiveSheet.PageSetup.PrintArea = Selection.Address
   
    Sheets("PlenaryInventory").Select
    ActiveSheet.PageSetup.PrintArea = ""
    Application.Goto Reference:="PI_" & CurrentMonth
    ActiveSheet.PageSetup.PrintArea = Selection.Address
   
    Sheets("ESOACaseInventory").Select
    ActiveSheet.PageSetup.PrintArea = ""
    Application.Goto Reference:="ES_" & CurrentMonth
    ActiveSheet.PageSetup.PrintArea = Selection.Address

    'Export to PDF
   
    ActiveWorkbook.SaveAs Filename:=AttorneyName & "_" & CurrentYear & "_" & CurrentMonth & ".pdf", FileFormat:=xlPDF

    'ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF _
    ', Filename:=AttorneyName & "_" & CurrentYear & "_" & CurrentMonth & ".pdf" _
    ', Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
     

    Sheets("MonthlyReport").Select
       


I am also attaching the spreadsheet.  Any help you can provide will be greatly appreciated.

Thanks so much.
Jose
Monthly-Report-Template-V2.xlsm
0
Comment
Question by:jselaya
3 Comments
 
LVL 18

Expert Comment

by:Simon
ID: 40551571
I don't think that the "save as PDF" is part of the standard build of Office on Windows.

I have it on my File menu, but I think that's only because I have Acrobat (full version, not reader) installed on my machine.

If you don't have Acrobat (on Windows) you'll need to do it like this:

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\YourFileNameHere.pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
0
 
LVL 85

Accepted Solution

by:
Rory Archibald earned 500 total points
ID: 40551573
I suggest you comment out this bit:
ActiveWorkbook.SaveAs Filename:=AttorneyName & "_" & CurrentYear & "_" & CurrentMonth & ".pdf", FileFormat:=xlPDF

Open in new window

and uncomment this bit:
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF _
    ', Filename:=AttorneyName & "_" & CurrentYear & "_" & CurrentMonth & ".pdf" _
    ', Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

Open in new window

0
 

Author Closing Comment

by:jselaya
ID: 40551611
Thanks so much. It now works!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This tutorial explains how to create a series of drop-down lists that are dependent upon prior selections to guide (“force”) the user to make the correct selection and reduce data errors within Microsoft Excel. Excel 2010 was used for this tutorial;…
This code takes an Excel list of URL’s and adds a header titled “URL List”. It then searches through all URL’s in column “A”, looking for duplicates. When a duplicate is found, it is moved to the top of the list. The duplicate URL’s are then highlig…
The viewer will learn how to use the =DISCRINV command to create a discrete random variable, use this command to model a set of probabilities and outcomes in a Monte Carlo simulation, and learn how to find the standard deviation of a set of probabil…
This Micro Tutorial will demonstrate on a Mac how to change the sort order for chart legend values and decrpyt the intimidating chart menu.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

25 Experts available now in Live!

Get 1:1 Help Now