1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| Option Explicit
Private Declare PtrSafe 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
Private Const SW_NORMAL = 1
Public Const PDF_FILE = "Entente DPTI.pdf"
Public Sub DPTI_FR()
Dim sFileHeader As String
Dim sFileFooter As String
Dim sFileFields As String
Dim sFileName As String
Dim sTmp As String
Dim lngFileNum As Long
Dim vClient As Variant
' 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 = "<</T(Nom)/V(---NAME---)>>" & vbCrLf & _
"<</T(Matricule)/V(---Matricule---)>>" & vbCrLf & _
"<</T(Model0)/V(---Model0---)>>" & vbCrLf & _
"<</T(Type0)/V(---Type0---)>>" & vbCrLf & _
"<</T(Size0)/V(---Size0---)>>" & vbCrLf & _
"<</T(Serie0)/V(---Serie0---)>>" & vbCrLf & _
"<</T(Class0)/V(---Class0---)>>" & vbCrLf & _
"<</T(NomSig0)/V(---NomSig0---)>>" & vbCrLf & _
"<</T(NomSigOSSI)/V(---NomSigOSSI)>>" & vbCrLf & _
"<</T(f1_12(0))/V()>>" & vbCrLf
vClient = Range(Selection.Row & ":" & Selection.Row)
sFileFields = Replace(sFileFields, "---NAME---", vClient(1, 9))
sFileFields = Replace(sFileFields, "---Matricule---", vClient(1, 11))
sFileFields = Replace(sFileFields, "---Model0---", vClient(1, 2))
sFileFields = Replace(sFileFields, "---Type0---", vClient(1, 4))
sFileFields = Replace(sFileFields, "---Size0---", vClient(1, 5))
sFileFields = Replace(sFileFields, "---Serie0---", vClient(1, 6))
sFileFields = Replace(sFileFields, "---Class0---", vClient(1, 7))
sFileFields = Replace(sFileFields, "---NomSig0---", vClient(1, 9))
sFileFields = Replace(sFileFields, "---NomSigOSSI", vClient(1, 12))
sTmp = sFileHeader & sFileFields & sFileFooter
' Write FDF file to disk
If Len(vClient(1, 9)) Then sFileName = vClient(1, 9) Else sFileName = "FDF_DEMO"
sFileName = ActiveWorkbook.Path & "\" & sFileName & ".fdf"
lngFileNum = FreeFile
Open sFileName For Output As lngFileNum
Print #lngFileNum, sTmp
Close #lngFileNum
DoEvents
' Open FDF file as PDF
ShellExecute vbNull, "open", sFileName, vbNull, vbNull, SW_NORMAL
Exit Sub
ErrorHandler:
MsgBox "MakeFDF Error: " + Str(Err.Number) + " " + Err.Description + " " + Err.Source
End Sub |
Partager