Impression d'un fichier "PDF" via VBA ?

YANN-56

XLDnaute Barbatruc
Bonsoir, ou Bonjour à ceux passeront par là.

Est-il possible de provoquer l'impression d'un fichier "PDF"
existant dans un répertoire par une macro?

Si vous avez une solution, ce serait sympa...

Bonne fin de soirée, et de fin de semaine à vous.

Yann
 

YANN-56

XLDnaute Barbatruc
Re : Impression d'un fichier "PDF" via VBA ?

Re gilbert RGI,

J'ai trouvé, en fouinant sur le net, une façon de faire qui me convient

Code:
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 IMPRIMER_PDF()
    Dim FICHIER_A_IMPRIMER As String
    Dim x As Long
    x = FindWindow("XLMAIN", Application.Caption)
    
' Le chemin du "FICHIER_A_IMPRIMER" est à adapter:

FICHIER_A_IMPRIMER = "C:\Documents and Settings\MA_POMME\Bureau\MACHIN.pdf"
    
    ShellExecute x, "print", FICHIER_A_IMPRIMER, "", "", 1
    
End Sub

Sauf que Adobe Reader reste ouvert!
Je vais devoir trouver une solution pour le fermer... Pfff!

Au plaisir.

Yann

P.S.
Je joins mon Classeur, au cas où il puisse servir à quelqu'un.
 

Pièces jointes

  • IMPRIME_PDF.xls
    28 KB · Affichages: 556

YANN-56

XLDnaute Barbatruc
Re : Impression d'un fichier "PDF" via VBA ?

Bonjour ou Bonsoir Gilbert_RGI et à ceux qui passeront par là.

Merci pour ton aide, c'est vraiment sympa d'y avoir investi ce temps.

A cette heure, je ne parviens pas à compléter mon code avec ce que tu m'as dit.
(Je balbutie en VBA. Et les sexagénaires neurones coincent un peu :rolleyes:)

La temporisation et visualisation fonctionnent. La fermeture: Non. :mad:
Pour tenter de mieux comprendre, j'ai supprimé ces points
dont je n'ai pas besoin dans mon Appli. Mais Echec!!!

J'ai eu la naïveté de penser qu'il était possible d'enregistrer le nom de la dernière Application ouverte (Voire processus) et d'en provoquer la fermeture à la fin de la procédure.

Peut-être n'est-ce pas si simple... Et surtout trop au-delà de mes compétences.

Je réitère mes remerciements, et te souhaite une bonne fin de fin de semaine.

Yann .... Désolé...
 

gilbert_RGI

XLDnaute Barbatruc
Re : Impression d'un fichier "PDF" via VBA ?

le pdf est bien ouvert avec adobe reader ?

car les touches de raccourcis pour les autres lecteurs de pdf sont peut-être différentes

j'ai fait des essais avec ce code et ça fonctionne
il ne faut pas supprimer les temporisations pour avoir le temps d'ouverture des applications
sinon les raccourcis ne se font pas sur l'application voulue
la fermeture fonctionne également :confused:
 

YANN-56

XLDnaute Barbatruc
Re : Impression d'un fichier "PDF" via VBA ?

Bonsoir Gilbert RGI à la patience admirable.

Tu connais, sans doute, la chanson de Gilbert Becaud:
La mise aux enchères... Et pour ce coup de pied au cul: Combien?
Merci de me l'avoir donné.:)

J'ai été perturbé par la "Non impression" du PDF
J'ai donc ajouté cette ligne qui finalise à merveille ce que je tentais de faire.

Code:
Sub test()
    LongFilename = Application.GetOpenFilename("PDF Files (*.pdf), *.pdf,(*.*),*.*")
    fich = CStr(LongFilename)
    rep = ShellExecute(0, "open", fich, "", "", 0)
    
'====================================  Ordre d'impression
   ShellExecute x, "print", fich, "", "", 1
' ====================================

    SendKeys "%(hi)"
    Application.OnTime Now + TimeValue("00:00:03"), "monok"
End Sub

Proverbe chinois:
Donne un poisson à un homme; il se nourrira ce jour.
Apprends lui à pêcher; il se nourrira toute sa vie.

C'est vrai aussi en VBA, et c'est ce que tu viens de faire.

Bravo pour ton Art et ta gentillesse.
Merci encore, et plein de bonnes choses à toi pour les temps qui viennent.

Yann
 

Redba13

XLDnaute Nouveau
Bonsoir, ou Bonjour à ceux passeront par là.

Est-il possible de provoquer l'impression d'un fichier "PDF"
existant dans un répertoire par une macro?

Si vous avez une solution, ce serait sympa...

Bonne fin de soirée, et de fin de semaine à vous.

Yann

Bonjour j'ai passer des heures et je n'arrive pas a adapter votre macro.

Je souhaite si possible imprimer une liste de PDF l'un après l'autre.
Je peux soit mettre directement le Chemin du document
exemple
en A1 C:\test\fichier1.pdf
en A2 C:\test\fichier2.pdf

Ou le lien Hyper texte dans la Cellule
en A1 =LIEN_HYPERTEXTE(".\fiches \TEST"&F3&".pdf";"CHR-"&F3)
en A2 =LIEN_HYPERTEXTE(".\fiches \TEST"&F4&".pdf";"CHR-"&F3)


Merci pour votre aide j'en ai 400 a faire très rapidement
 

Discussions similaires

Statistiques des forums

Discussions
312 326
Messages
2 087 312
Membres
103 513
dernier inscrit
adel.01.01.80.19