Greetings. I've got an excel 2016 file, let's use the name Acme.xlsx. I need a macro to save a sheet (let's say it's called Sales) as a PDF and name that PDF after the workbook name AND the sheet name; e.g., ..... Acme_Sales.PDF.
I've got most of it down, and now need to add the sheet name to the PDF name.
From www.contextures.com I've got the following code: It works like a champ and now I want to concatenate the workbook name to the front of the PDF file.
Sub PDFActiveSheet()
'www.contextures.com
'for Excel 2010 and later
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
Dim FileOnly As String ' JK test
On Error GoTo errHandler
'Set strwbA = ActiveWorkbook
Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
Set wsWkSht = ActiveWorkbook
Set FileOnly = ActiveWorkbook ' JK test
strTime = Format(Now(), "yyyymmdd\_hhmm")
'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "" Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & ""
'replace spaces and periods in sheet name
strName = Replace(wsA.Name, " ", "")
strName = Replace(strName, ".", "_")
'create default name for savng file
strFile = FileOnly & " " & strName & "_" & strTime & ".pdf" 'Here's where I'm trying to enter the filename AND the sheet name
strPathFile = strPath & strFile
'use can enter name and
' select folder for file
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and FileName to save")
'export to PDF if a folder was selected
If myFile <> "False" Then
wsA.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'confirmation message with file info
MsgBox "PDF file has been created: " _
& vbCrLf _
& myFile
End If
exitHandler:
Exit Sub
errHandler:
MsgBox "Could not create PDF file"
Resume exitHandler
End Sub
I've got most of it down, and now need to add the sheet name to the PDF name.
From www.contextures.com I've got the following code: It works like a champ and now I want to concatenate the workbook name to the front of the PDF file.
Sub PDFActiveSheet()
'www.contextures.com
'for Excel 2010 and later
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
Dim FileOnly As String ' JK test
On Error GoTo errHandler
'Set strwbA = ActiveWorkbook
Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
Set wsWkSht = ActiveWorkbook
Set FileOnly = ActiveWorkbook ' JK test
strTime = Format(Now(), "yyyymmdd\_hhmm")
'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "" Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & ""
'replace spaces and periods in sheet name
strName = Replace(wsA.Name, " ", "")
strName = Replace(strName, ".", "_")
'create default name for savng file
strFile = FileOnly & " " & strName & "_" & strTime & ".pdf" 'Here's where I'm trying to enter the filename AND the sheet name
strPathFile = strPath & strFile
'use can enter name and
' select folder for file
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and FileName to save")
'export to PDF if a folder was selected
If myFile <> "False" Then
wsA.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'confirmation message with file info
MsgBox "PDF file has been created: " _
& vbCrLf _
& myFile
End If
exitHandler:
Exit Sub
errHandler:
MsgBox "Could not create PDF file"
Resume exitHandler
End Sub