Instructions pour imprimer un document PDF via Excel VBA

Bonjour,

J'ai écrit un programme pour remplir et imprimer automatiquement un document pdf. Si la partie de mon code concernant le remplissage des différents champs fonctionne, je rencontre des problèmes avec la partie de mon code pour imprimer le document pdf. Voici mon programme :

Sub Fill_Out_Certificat_De_Cession()
Dim pdfApp As Acrobat.AcroApp
Dim pdfDoc As Acrobat.AcroAVDoc
Dim Support_doc As Acrobat.AcroPDDoc
Dim pdf_form As AFORMAUTLib.aformapp
Dim pdf_form_flds As AFORMAUTLib.Fields
Dim PDF_Number_Of_Pages As Integer
Dim P1_Rubrique_Véhicule_Immatriculation As AFORMAUTLib.Field
Dim P1_Rubrique_Véhicule_Numéro_De_Série As AFORMAUTLib.Field
Dim P1_Rubrique_Véhicule_Première_Immat_Jour As AFORMAUTLib.Field
Dim P1_Rubrique_Véhicule_Première_Immat_Mois As AFORMAUTLib.Field
Dim P1_Rubrique_Véhicule_Première_Immat_Année As AFORMAUTLib.Field

Set pdfApp = CreateObject("AcroExch.App")
Set pdfDoc = CreateObject("AcroExch.AVDoc")

If pdfDoc.Open("C:\Users\JV15421\Desktop\CREDIPAR\Documents de cession\Certificat de cession.pdf", "") = True Then
pdfDoc.BringToFront
pdfApp.Show

Set pdf_form = CreateObject("AFORMAUT.App")

Set P1_Rubrique_Véhicule_Immatriculation = pdf_form.Fields("topmostSubform[0].Page1[0].num_Immatriculation[0]")
Set P1_Rubrique_Véhicule_Numéro_De_Série = pdf_form.Fields("topmostSubform[0].Page1[0].num_Identification[0]")
Set P1_Rubrique_Véhicule_Première_Immat_Jour = pdf_form.Fields("topmostSubform[0].Page1[0].num_DateImmatriculationJour[0]")
Set P1_Rubrique_Véhicule_Première_Immat_Mois = pdf_form.Fields("topmostSubform[0].Page1[0].num_DateImmatriculationMois[0]")
Set P1_Rubrique_Véhicule_Première_Immat_Année = pdf_form.Fields("topmostSubform[0].Page1[0].num_DateImmatriculationAnnée[0]")

P1_Rubrique_Véhicule_Immatriculation.Value = Feuil1.Cells(4, 2)
P1_Rubrique_Véhicule_Numéro_De_Série.Value = Feuil1.Cells(5, 2)
P1_Rubrique_Véhicule_Première_Immat_Jour.Value = Left(Feuil1.Cells(8, 2), 2)
P1_Rubrique_Véhicule_Première_Immat_Mois.Value = Mid(Feuil1.Cells(8, 2), 4, 2)
P1_Rubrique_Véhicule_Première_Immat_Année.Value = Mid(Feuil1.Cells(8, 2), 7, 4)

Set Support_doc = pdfDoc.GetPDDoc
PDF_Number_Of_Pages = Support_doc.GetNumPages - 1
Support_doc.Save PDSaveFull, "C:\Users\J****\Desktop\\Documents de cession\Certificat de cession.pdf"
' pdfDoc.PrintPages 0, PDF_Number_Of_Pages, 1, True, True ???
pdfDoc.Close True
' pdfDoc.PrintPages 0, 1, 1, 1, 1 ???
Support_doc.Close
pdfApp.Exit

Set P1_Rubrique_Véhicule_Immatriculation = Nothing
Set P1_Rubrique_Véhicule_Numéro_De_Série = Nothing
Set P1_Rubrique_Véhicule_Première_Immat_Jour = Nothing
Set P1_Rubrique_Véhicule_Première_Immat_Mois = Nothing
Set P1_Rubrique_Véhicule_Première_Immat_Année = Nothing

Set pdfDoc = Nothing
Set Support_doc = Nothing

End If

End Sub

J'imagine que l'instruction PrintOut ne fonctionne pas pour imprimer des documents pdf, et j'ai du mal à trouver comment faire fonctionner PrintPages... Vos conseils sont la bienvenue, merci d'avance...

Bonjour,

Pouvez-vous essayer ceci ?

PDF_Number_Of_Pages = Support_doc.GetNumPages - 1
Support_doc.Save PDSaveFull, "C:\Users\J****\Desktop\\Documents de cession\Certificat de cession.pdf"
pdfDoc.PrintPages
pdfDoc.Close True

Quand vous écrivez la ligne pdfdoc.printpages, normalement au moment de taper le ".", vous avez la liste des méthodes puis après vous avez le nom des paramètres à saisir (notamment si vous ouvrez une parenthèse). Les voyez-vous ?

Petite curiosité : Quelle référence avez-vous ajouté ? Vous avez bien acrobat ?

Rechercher des sujets similaires à "instructions imprimer document pdf via vba"