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
| Option Explicit
Sub TstPdfCreator_Multi()
Dim JobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String
Dim Ar() As String, Cpt As Long, i As Long
Application.ScreenUpdating = False
sNomPDF = "Essai_Muiti.pdf"
sCheminPDF = ThisWorkbook.Path & "\"
Set JobPDF = CreateObject("PDFCreator.clsPDFCreator")
With JobPDF
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sCheminPDF
.cOption("AutosaveFilename") = sNomPDF
' 0=PDF, 1=Png, 2=jpg, 3=bmp, 4=pcx, 5=tif, 6=ps, 7=eps, 8=txt
.cOption("AutosaveFormat") = 0
.cClearCache
End With
Cpt = 0
For i = 1 To ThisWorkbook.Sheets.Count
ReDim Preserve Ar(Cpt)
Ar(Cpt) = Sheets(i).Name
Cpt = Cpt + 1
Next i
If Cpt = 0 Then
Application.ScreenUpdating = True
Exit Sub
End If
Sheets(Ar).Select
Sheets(Ar).PrintOut copies:=1, ActivePrinter:="PDFCreator"
' Fichier dans la file d'attente
Do Until JobPDF.cCountOfPrintjobs = 1
DoEvents
Loop
' Démarrage Imprimante
JobPDF.cPrinterStop = False
' Attendre que la file d'attente soit vide
Do Until JobPDF.cCountOfPrintjobs = 0
DoEvents
Loop
JobPDF.cClose
Set JobPDF = Nothing
Worksheets(1).Select
Application.ScreenUpdating = True
KillPDFCreator
End Sub
Private Sub KillPDFCreator()
Dim RetVal As Long
RetVal = Shell("Taskkill /im PDFCreator.exe /f", 0)
End Sub |
Partager