Imprimer un sélection de page d'un fichier PDF

Bonjour,

J'aimerais imprimer une selection de page d'un fichier PDF à partir de VBA.

J'ai bien trouvé une commande shell qui imprime un fichier PDF :

Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _

(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

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 ImprimerFichier()

Dim NomFichier As String

Dim x As Long

x = FindWindow("XLMAIN", Application.Caption)

NomFichier = "C:\dossier\rapport.pdf"

ShellExecute x, "print", NomFichier, "", "", 1

End Sub

Seulement ce code imprime le fichier PDF en entier, or moi je cherche à imprimer que certaines pages du document PDF.

Merci pour votre aide.

Bonjour Dawid,

Je n'aime pas utiliser les SendKeys en général, mais voici un code pour le faire

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub ImpPagePDF()
  Dim AppPath As String, FilePath As String, PgeNum As Integer
  Dim Clip As MSForms.DataObject, sPages As String
  ' Chemin d'accès à Adobe Reader
  AppPath = "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe"
  ' Chemin d'accès du fichier PDF
  FilePath = "D:\Users\NonoZ\Documents\aspire_8930g.pdf"
  ' Pages à imprimer
  sPages = "1;3-4"
  ' Mettre les pages en mémoire
  Set Clip = New MSForms.DataObject
  Clip.Clear
  Clip.SetText sPages, 1
  Clip.PutInClipboard
  ' Ouvrir le fichier avec l'application
  Shell AppPath & " " & FilePath, vbNormalFocus
  Sleep 500
  ' Envoyer les commandes clavier
  SendKeys "^p", True
  SendKeys "%g", True
  SendKeys "{TAB}", True
  SendKeys "^v", True
  SendKeys "{ENTER}", True
  Sleep 500
  ' Arrêter le processus Adobe Reader
  KillAcrobatReader
  Set Clip = Nothing
End Sub

Private Sub KillAcrobatReader()
    Shell "Taskkill /im Acrobat.exe /f", 0
End Sub

A+

Merci de votre réponse. Je vais essayer et je vous tiens informé.

Cordialement

Merci pour ce code, il fonctionne mais ne rempli pas toutes mes attentes.

En effet, le fichier se trouve en réseau et est disponible à partir d'une vingtaine de machine au minimum.

bien sûr il y a un panachage des système d'exploitation, de processeurs 32 ou 64 bits et bien sûr le programme Acrobat reader ne se situe pas toujours au même emplacement.

Puisse insérer une fenêtre de consultation du fichier (dans un userform par exemple) et commander une impression par code a partir de cette fenêtre ?

Cordialement,

Rechercher des sujets similaires à "imprimer selection page fichier pdf"