Bonjour,

Voici le code que j'utilise pour imprimer un document pdf faisant parfois plusieurs pages.
Ce code me satisfait pour l'impression du pdf et il ferme bien la/(les) fenêtre(s) après impression.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public Function PrintPDF(Optional PrintReason As String)
'Imprime le pdf puis ferme tous les process 'acrobat.exe'
'PathActuel fait référence à la directory contenant le fichier pdf appelé FichierPDF.

   X = ShellExecute(0, "Print", PathActuel & FichierPDF, 0&, 0&, 3)  'Impression du pdf 
   Call KillAcrobat
   If Not IsMissing(PrintReason) Then
      MsgBox "Une impression a eu lieu pour la raison suivante:" & vbCr & PrintReason
   End If
End Function

Public Function KillAcrobat()
'Ferme tous les process 'acrobat.exe'
   Dim objWMI As Object, objLibProc As Object, objProcess As Object
   Set objWMI = GetObject("winmgmts://.")
   Set objLibProc = objWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'acrobat.exe'")
   For Each objProcess In objLibProc
       Call objProcess.Terminate
   Next
   Set objLibProc = Nothing
   Set objWMI = Nothing
End Function
Ma question est la suivante: Comment imprimer ma raison d'impression en même temps et sur les même pages que le pdf au lieu de l'afficher dans un MsgBox (cf texte en rouge) ou de l'imprimer sur une page séparée.

Merci pour votre aide