Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub Main()
Dim mainPDF As String
Select Case LCase(Worksheets("Statement").Range("I24").Value2)
Case "platinum"
mainPDF = "aspireplatinum.pdf"
Case "gold"
mainPDF = "aspiregold.pdf"
Case "silver"
mainPDF = "aspiresilver.pdf"
Case "bronze"
mainPDF = "aspirebronze.pdf"
Case "entry"
mainPDF = "aspireentry.pdf"
Case Else
mainPDF = "aspiretest.pdf"
End Select
If Len(Dir(ThisWorkbook.Path & "\" & mainPDF)) = 0 Then
MsgBox ThisWorkbook.Path & "\" & mainPDF, vbCritical, "Missing File - Macro Ending"
Exit Sub
End If
MakeFDF mainPDF
End Sub
Public Sub MakeFDF(Optional PDF_FILE As String = "aspiretest.pdf")
Dim sFileHeader As String
Dim sFileFooter As String
Dim sFileFields As String
Dim sFileName As String
Dim sTmp As String
Dim lngFileNum As Long
' Builds string for contents of FDF file and then writes file to workbook folder.
On Error GoTo ErrorHandler
sFileHeader = "%FDF-1.2" & vbCrLf & _
"%âãÏÓ" & vbCrLf & _
"1 0 obj<</FDF<</F(" & PDF_FILE & ")/Fields 2 0 R>>>>" & vbCrLf & _
"endobj" & vbCrLf & _
"2 0 obj[" & vbCrLf
sFileFooter = "]" & vbCrLf & _
"endobj" & vbCrLf & _
"trailer" & vbCrLf & _
"<</Root 1 0 R>>" & vbCrLf & _
"%%EO"
sFileFields = sFileFields & "<</T(CustomerInfoBusiness)/V(CustomerInfoBusiness)>>" & vbCrLf
sFileFields = sFileFields & "<</T(EnikaTitle)/V(EnikaTitle)>>" & vbCrLf
sFileFields = sFileFields & "<</T(Enika)/V(Enika)>>" & vbCrLf
sFileFields = sFileFields & "<</T(CustomerInfoName)/V(CustomerInfoName)>>" & vbCrLf
sFileFields = sFileFields & "<</T(TM)/V(TM)>>" & vbCrLf
sFileFields = sFileFields & "<</T(TMTitle)/V(TMTitle)>>" & vbCrLf
sFileFields = sFileFields & "<</T(CustomerInfoAddress)/V(CustomerInfoAddress)>>" & vbCrLf
sFileFields = sFileFields & "<</T(CustomerInfoCity)/V(CustomerInfoCity)>>" & vbCrLf
sFileFields = sFileFields & "<</T(CustomerInfoPostal)/V(CustomerInfoPostal)>>" & vbCrLf
sFileFields = sFileFields & "<</T(CustomerInfoDate1)/V(CustomerInfoDate1)>>" & vbCrLf
sFileFields = sFileFields & "<</T(CustomerInfoDate2)/V(CustomerInfoDate2)>>" & vbCrLf
sFileFields = sFileFields & "<</T(Q1Bonus)/V(Q1Bonus)>>" & vbCrLf
sFileFields = sFileFields & "<</T(Q1BonusNumber)/V(Q1BonusNumber)>>" & vbCrLf
sFileFields = sFileFields & "<</T(Q2Bonus)/V(Q2Bonus)>>" & vbCrLf
sFileFields = sFileFields & "<</T(Q2BonusNumber)/V(Q2BonusNumber)>>" & vbCrLf
sFileFields = sFileFields & "<</T(Q3Bonus)/V(Q3Bonus)>>" & vbCrLf
sFileFields = sFileFields & "<</T(Q3BonusNumber)/V(Q3BonusNumber)>>" & vbCrLf
sFileFields = sFileFields & "<</T(Q4Bonus)/V(Q4Bonus)>>" & vbCrLf
sFileFields = sFileFields & "<</T(Q4BonusNumber)/V(Q4BonusNumber)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OpeningBalanceDate)/V(OpeningBalanceDate)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate1)/V(OABDate1)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OpeningBalance)/V(OpeningBalance)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName1)/V(OABName1)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber1)/V(OABNumber1)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate2)/V(OABDate2)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName2)/V(OABName2)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate3)/V(OABDate3)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName3)/V(OABName3)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber3)/V(OABNumber3)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate4)/V(OABDate4)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName4)/V(OABName4)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber4)/V(OABNumber4)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate5)/V(OABDate5)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName5)/V(OABName5)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber5)/V(OABNumber5)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate6)/V(OABDate6)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName6)/V(OABName6)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber6)/V(OABNumber6)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate7)/V(OABDate7)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName7)/V(OABName7)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber7)/V(OABNumber7)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate8)/V(OABDate8)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate9)/V(OABDate9)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName8)/V(OABName8)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber2)/V(OABNumber2)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber8)/V(OABNumber8)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName9)/V(OABName9)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber9)/V(OABNumber9)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName10)/V(OABName10)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate10)/V(OABDate10)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber10)/V(OABNumber10)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate11)/V(OABDate11)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName11)/V(OABName11)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber11)/V(OABNumber11)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate12)/V(OABDate12)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName12)/V(OABName12)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber12)/V(OABNumber12)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate13)/V(OABDate13)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName13)/V(OABName13)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber13)/V(OABNumber13)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate14)/V(OABDate14)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName14)/V(OABName14)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber14)/V(OABNumber14)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate15)/V(OABDate15)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName15)/V(OABName15)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber15)/V(OABNumber15)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate16)/V(OABDate16)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName16)/V(OABName16)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber16)/V(OABNumber16)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABDate17)/V(OABDate17)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABName17)/V(OABName17)>>" & vbCrLf
sFileFields = sFileFields & "<</T(OABNumber17)/V(OABNumber17)>>" & vbCrLf
sFileFields = sFileFields & "<</T(AccountBalanceDate)/V(AccountBalanceDate)>>" & vbCrLf
sFileFields = sFileFields & "<</T(AccountBalance)/V(AccountBalance)>>" & vbCrLf
sFileFields = Replace(sFileFields, "CustomerInfoBusiness", Range("CustomerInfoBusiness").Value)
sFileFields = Replace(sFileFields, "EnikaTitle", Range("EnikaTitle").Value)
sFileFields = Replace(sFileFields, "Enika", Range("Enika").Value)
sFileFields = Replace(sFileFields, "CustomerInfoName", Range("CustomerInfoName").Value)
sFileFields = Replace(sFileFields, "TM", Range("TM").Value)
sFileFields = Replace(sFileFields, "TMTitle", Range("TMTitle").Value)
sFileFields = Replace(sFileFields, "CustomerInfoAddress", Range("CustomerInfoAddress").Value)
sFileFields = Replace(sFileFields, "CustomerInfoCity", Range("CustomerInfoCity").Value)
sFileFields = Replace(sFileFields, "CustomerInfoPostal", Range("CustomerInfoPostal").Value)
sFileFields = Replace(sFileFields, "CustomerInfoDate1", Range("CustomerInfoDate1").Value)
sFileFields = Replace(sFileFields, "CustomerInfoDate2", Range("CustomerInfoDate2").Value)
sFileFields = Replace(sFileFields, "Q1Bonus", Range("Q1Bonus").Value)
sFileFields = Replace(sFileFields, "Q1BonusNumber", Range("Q1BonusNumber").Value)
sFileFields = Replace(sFileFields, "Q2Bonus", Range("Q2Bonus").Value)
sFileFields = Replace(sFileFields, "Q2BonusNumber", Range("Q2BonusNumber").Value)
sFileFields = Replace(sFileFields, "Q3Bonus", Range("Q3Bonus").Value)
sFileFields = Replace(sFileFields, "Q3BonusNumber", Range("Q3BonusNumber").Value)
sFileFields = Replace(sFileFields, "Q4Bonus", Range("Q4Bonus").Value)
sFileFields = Replace(sFileFields, "Q4BonusNumber", Range("Q4BonusNumber").Value)
sFileFields = Replace(sFileFields, "OpeningBalanceDate", Range("OpeningBalanceDate").Value)
sFileFields = Replace(sFileFields, "OABDate1", Range("OABDate1").Value)
sFileFields = Replace(sFileFields, "OpeningBalance", Range("OpeningBalance").Value)
sFileFields = Replace(sFileFields, "OABName1", Range("OABName1").Value)
sFileFields = Replace(sFileFields, "OABNumber1", Range("OABNumber1").Value)
sFileFields = Replace(sFileFields, "OABDate2", Range("OABDate2").Value)
sFileFields = Replace(sFileFields, "OABName2", Range("OABName2").Value)
sFileFields = Replace(sFileFields, "OABDate3", Range("OABDate3").Value)
sFileFields = Replace(sFileFields, "OABName3", Range("OABName3").Value)
sFileFields = Replace(sFileFields, "OABNumber3", Range("OABNumber3").Value)
sFileFields = Replace(sFileFields, "OABDate4", Range("OABDate4").Value)
sFileFields = Replace(sFileFields, "OABName4", Range("OABName4").Value)
sFileFields = Replace(sFileFields, "OABNumber4", Range("OABNumber4").Value)
sFileFields = Replace(sFileFields, "OABDate5", Range("OABDate5").Value)
sFileFields = Replace(sFileFields, "OABName5", Range("OABName5").Value)
sFileFields = Replace(sFileFields, "OABNumber5", Range("OABNumber5").Value)
sFileFields = Replace(sFileFields, "OABDate6", Range("OABDate6").Value)
sFileFields = Replace(sFileFields, "OABName6", Range("OABName6").Value)
sFileFields = Replace(sFileFields, "OABNumber6", Range("OABNumber6").Value)
sFileFields = Replace(sFileFields, "OABDate7", Range("OABDate7").Value)
sFileFields = Replace(sFileFields, "OABName7", Range("OABName7").Value)
sFileFields = Replace(sFileFields, "OABNumber7", Range("OABNumber7").Value)
sFileFields = Replace(sFileFields, "OABDate8", Range("OABDate8").Value)
sFileFields = Replace(sFileFields, "OABDate9", Range("OABDate9").Value)
sFileFields = Replace(sFileFields, "OABName8", Range("OABName8").Value)
sFileFields = Replace(sFileFields, "OABNumber2", Range("OABNumber2").Value)
sFileFields = Replace(sFileFields, "OABNumber8", Range("OABNumber8").Value)
sFileFields = Replace(sFileFields, "OABName9", Range("OABName9").Value)
sFileFields = Replace(sFileFields, "OABNumber9", Range("OABNumber9").Value)
sFileFields = Replace(sFileFields, "OABName10", Range("OABName10").Value)
sFileFields = Replace(sFileFields, "OABDate10", Range("OABDate10").Value)
sFileFields = Replace(sFileFields, "OABNumber10", Range("OABNumber10").Value)
sFileFields = Replace(sFileFields, "OABDate11", Range("OABDate11").Value)
sFileFields = Replace(sFileFields, "OABName11", Range("OABName11").Value)
sFileFields = Replace(sFileFields, "OABNumber11", Range("OABNumber11").Value)
sFileFields = Replace(sFileFields, "OABDate12", Range("OABDate12").Value)
sFileFields = Replace(sFileFields, "OABName12", Range("OABName12").Value)
sFileFields = Replace(sFileFields, "OABNumber12", Range("OABNumber12").Value)
sFileFields = Replace(sFileFields, "OABDate13", Range("OABDate13").Value)
sFileFields = Replace(sFileFields, "OABName13", Range("OABName13").Value)
sFileFields = Replace(sFileFields, "OABNumber13", Range("OABNumber13").Value)
sFileFields = Replace(sFileFields, "OABDate14", Range("OABDate14").Value)
sFileFields = Replace(sFileFields, "OABName14", Range("OABName14").Value)
sFileFields = Replace(sFileFields, "OABNumber14", Range("OABNumber14").Value)
sFileFields = Replace(sFileFields, "OABDate15", Range("OABDate15").Value)
sFileFields = Replace(sFileFields, "OABName15", Range("OABName15").Value)
sFileFields = Replace(sFileFields, "OABNumber15", Range("OABNumber15").Value)
sFileFields = Replace(sFileFields, "OABDate16", Range("OABDate16").Value)
sFileFields = Replace(sFileFields, "OABName16", Range("OABName16").Value)
sFileFields = Replace(sFileFields, "OABNumber16", Range("OABNumber16").Value)
sFileFields = Replace(sFileFields, "OABDate17", Range("OABDate17").Value)
sFileFields = Replace(sFileFields, "OABName17", Range("OABName17").Value)
sFileFields = Replace(sFileFields, "OABNumber17", Range("OABNumber17").Value)
sFileFields = Replace(sFileFields, "AccountBalanceDate", Range("AccountBalanceDate").Value)
sFileFields = Replace(sFileFields, "AccountBalance", Range("AccountBalance").Value)
sTmp = sFileHeader & sFileFields & sFileFooter
' Write FDF file to disk
If Len(Range("CustomerInfoName").Value) Then
sFileName = Range("CustomerInfoName").Value
Else: sFileName = "FDF_DEMOTEST"
End If
sFileName = ActiveWorkbook.Path & "\" & sFileName & ".fdf"
lngFileNum = FreeFile
Open sFileName For Output As lngFileNum
Print #lngFileNum, sTmp
Close #lngFileNum
DoEvents
' Open FDF file as PDF
'Shell "cmd /c " & """" & sFileName & """", vbNormalFocus
Exit Sub
ErrorHandler:
MsgBox "MakeFDF Error: " + Str(Err.Number) + " " + Err.Description + " " + Err.Source
End Sub