Imprimer une liste de fichiers pdf et word via vba excel [Résolu]

sdfred 7 Messages postés lundi 30 juin 2008Date d'inscription 8 août 2008 Dernière intervention - 6 août 2008 à 13:56 - Dernière réponse : sdfred 7 Messages postés lundi 30 juin 2008Date d'inscription 8 août 2008 Dernière intervention
- 8 août 2008 à 16:02
Bonjour, je ne maitrise pas trop vba pour manipuler acrobat:

Si je fais le programme ci dessous ça marche parfaitement je peux imprimer un fichier word via vbaExcell..donc en développant le code je peux imprimer une liste de fichiers word écrite dans excel.

J'aimerais faire la même chose pour imprimer un fichier pdf mais je ne sais pas comment faire. ça ne marche pas. apparemment il ne faut pas utiliser la commande printout pour imprimer un pdf
Pouvez vous m'aider s'il vous plait?
Cordialement

Sub ImprimerWordViaVBAEXCEL()
Dim WordObj As Object
On Error Resume Next
Set WordObj = CreateObject("Word.Application")
Word.documents.Open "C:\essai"
Word.ActiveDocument.PrintOut
Word.ActiveDocument.Close
End Sub
Afficher la suite 

11 réponses

Répondre au sujet
dezbut 12 Messages postés lundi 20 novembre 2000Date d'inscription 13 août 2008 Dernière intervention - 7 août 2008 à 13:36
+3
Utile
Bonjour,
Utilise ça :

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

et

ShellExecute 0, "print", "C:\ABC.pdf", "", "", 0
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de dezbut
dezbut 12 Messages postés lundi 20 novembre 2000Date d'inscription 13 août 2008 Dernière intervention - 7 août 2008 à 20:31
+3
Utile
Euh... Je ne me suis jamais posé la question en fait pour les formats A3.
Mais il me semble (c'est peut être pas ce que tu recherches) que ces paramètres peuvent se régler manuellement sans passer par VBA. Il faut aller dans les options d'impressions...
Pour automatiser ça, essaye de voir avec winspool.drv mais comme ça, je ne peux rien te dire de plus...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de dezbut
radcur 283 Messages postés lundi 29 septembre 2003Date d'inscription 15 août 2012 Dernière intervention - 6 août 2008 à 22:32
0
Utile
salut

vérifie du côté de l'API shellexecute.

Il y a plusieurs exemples dans les codes sources et même du coté Codyx me semble avoir deja vu du code
Commenter la réponse de radcur
sdfred 7 Messages postés lundi 30 juin 2008Date d'inscription 8 août 2008 Dernière intervention - 7 août 2008 à 10:47
0
Utile
Merci j'ai essayé de faire un programme mais j'ai du mal:
Pour le fichier ABC.pdf, si j'écris:

Sub essai()
Dim AcroApp          As CAcroApp



Set AVDoc = CreateObject("AcroExch.AVDoc")
Call AVDoc.Open("C:\ABC.pdf", "")
Shell ("C:\Program Files\Adobe\Acrobat 7.0\Reader" & "AcroRd32.exe /p """ & "C:\ABC.pdf" & """")
End Sub



Il va m'ouvrir le fichier en question et m'ouvrir aussi le menu pour l'imprimante.
Par contre il faut que je clique sur "OK" pour lancer l'impression..y a t'il un moyen d'éviter cela?
Comment fermer le fichier apres impression?


en te remerciant par avance
Commenter la réponse de sdfred
sdfred 7 Messages postés lundi 30 juin 2008Date d'inscription 8 août 2008 Dernière intervention - 7 août 2008 à 18:23
0
Utile
Salut
je te remercie c'est parfait. ça marche.
est ce que tu saurais par hasard ou je peux trouver la commande qui choisi l'imprimante par défaut de windows et comment définir tous les parametres (A3,A4,Recto,RectoVerso...)
Selon le pdf je dois imprimer selon différents formats.
Merci encore
Commenter la réponse de sdfred
sdfred 7 Messages postés lundi 30 juin 2008Date d'inscription 8 août 2008 Dernière intervention - 8 août 2008 à 09:58
0
Utile
Salut,


Oui effectivement, je veux automatiser cela.


Au travail, je dois sortir parfois une centaine de documents. Il y en a certains qui doivent être en A4 recto d'autres en A3 RectoVerso...c'est pas évident puisque chaque imprimante a son propre logiciel de configuration..


Je vais ouvrir une nouvelle discussion dans le forum.


Merci encore


Bon WE 
Commenter la réponse de sdfred
dezbut 12 Messages postés lundi 20 novembre 2000Date d'inscription 13 août 2008 Dernière intervention - 8 août 2008 à 11:04
0
Utile
Bonjour,

Pour que le format du papier soit A3, utilise ça :
Activesheet.Pagesetup.PaperSize = xlPaperA3

Pour retourner au format A4 évidemment la propriété doit devenir xlPaperA4

Je crois (sans grandes convictions) que pour le recto verso il faut utiliser ça, mais je n'ai pas de quoi essayer :
Activesheet.PrintOut ManualDuplexPrint:=True
Commenter la réponse de dezbut
dezbut 12 Messages postés lundi 20 novembre 2000Date d'inscription 13 août 2008 Dernière intervention - 8 août 2008 à 11:06
0
Utile
En fait la dernière ligne ne fonctionne que sous EXCEL 2007 d'après un collègue...
Commenter la réponse de dezbut
sdfred 7 Messages postés lundi 30 juin 2008Date d'inscription 8 août 2008 Dernière intervention - 8 août 2008 à 13:40
0
Utile
Merci, mais ça ne paramètre que l'imprimante pour excel.
Si j'imprime mon pdf via shellexecute, il ne prendra pas en compte que les parametres de l'imprimante par défaut.
Il ne prendra pas en compte les parametres de l'imprimante pour excel.
en fait il faudrait trouver une commande shell et peut etre sendkeys (?) pour paramétrer l'imprimante??
Commenter la réponse de sdfred
dezbut 12 Messages postés lundi 20 novembre 2000Date d'inscription 13 août 2008 Dernière intervention - 8 août 2008 à 14:10
0
Utile
Eh oui c'est vrai, désolé...

Il y a toujours moyen de s'en sortir avec des sendkeys, mais c'est pas super élégant, ça fait un peu bricolo et puis ça ne marche pas toujours de la même manière sur toutes les machines...
Commenter la réponse de dezbut
sdfred 7 Messages postés lundi 30 juin 2008Date d'inscription 8 août 2008 Dernière intervention - 8 août 2008 à 16:02
0
Utile
je pense que c'est impossible..
tu peux récupérer des infos sur l'impression, le nom de l'imprimante.
Mais pour la paramétrer je ne vois pas comment vba (ou un autre language) pourrait le faire
Commenter la réponse de sdfred

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.