Imprimer pdf word à partir d'excel
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, je sollicite votre aide pour résoudre un problème de taille sur le quelle je travail depuis vendredi dernier et qui ne fonctionne pas du tout. Je dois imprimer dans un fichier PDF une partie d'un documents word mêler à des documents excel. Il m'est impossible d'imprimer le document sélectionné avec pdfcreator. Je regarder sur tout les forums que j'ai trouvé et rien ne règle mon problème.
voici un code que j'ai trouvé sur interner et qui ferais ce dont j'ai besoin en gros:
À la fin il a imprimer mon document mais papier. Pourtant, dans word, il le fait vraiment dans un PDF. La commande "activeprinter" ne fonctionne pas. Avec la commande si-dessous, ça fonctionne dans un fichier excel mais si je remplace le début par mon documents, ça ne fonctionne pas plus.
dans excel:
Sheets("Soumission").Range("a1:h290").PrintOut copies:=1, ActivePrinter:="PDFCreator"
dans excel mais à partir du fichier word:
oWord.ActiveDocument..PrintOut copies:=1, ActivePrinter:="PDFCreator"
Je suis vraiment désespéré. Il faut que je règle cela.
merci de votre aide.
voici un code que j'ai trouvé sur interner et qui ferais ce dont j'ai besoin en gros:
Sub ToPdf() Dim oWord As Word.Application Dim oDoc As Word.document Dim NomWord As String VBA.Interaction.Shell ("TASKKILL /F /IM winword.exe")' Ferme Word s'il est ouvert dans le gestionnaire de tâche. Set pdfjob = CreateObject("PDFCreator.clsPDFCreator") Set oWord = CreateObject("word.application") oWord.Documents.Open "c:\users\jsgermain\documents\test\toto.doc" Set oDoc = ActiveDocument NomWord = ActiveDocument.name NomPdf = Left(NomWord, Len(NomWord) - 4) & ".pdf" 'Si PDFCreator est ouvert, fermer l'application. Do Restart = False Set pdfjob = New PDFCreator.clsPDFCreator If pdfjob.cStart("/NoProcessingAtStartup") = False Then 'PDF Creator is already running. Kill the existing process Shell "taskkill /im PDFCreator.exe" ', vbHide DoEvents Set pdfjob = Nothing Restart = True End If Loop Until Restart = False 'Check if worksheet is empty and exit if so If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub Set pdfjob = New PDFCreator.clsPDFCreator With pdfjob .cOption("UseAutosave") = 1 .cOption("UseAutosaveDirectory") = 1 .cOption("AutosaveDirectory") = sPDFPath .cOption("AutosaveFilename") = sPDFName .cOption("AutosaveFormat") = 0 .cOption("AutosaveDirectory") = ActiveDocument.Path .cCombineAll .cClearCache End With ActivePrinter = "PDFCreator sur NE00:" oWord.Documents.Open "c:\users\jsgermain\documents\test\toto.doc" oWord.ActiveDocument.PrintOut copies:=1, Pages:="3-13" Do Until pdfjob.cCountOfPrintjobs = 1 DoEvents Loop pdfjob.cPrinterStop = False Do Until pdfjob.cCountOfPrintjobs = 0 DoEvents Loop With pdfjob .cDefaultPrinter = DefaultPrinter .cClearCache .cClose End With Set pdfjob = Nothing End Sub
À la fin il a imprimer mon document mais papier. Pourtant, dans word, il le fait vraiment dans un PDF. La commande "activeprinter" ne fonctionne pas. Avec la commande si-dessous, ça fonctionne dans un fichier excel mais si je remplace le début par mon documents, ça ne fonctionne pas plus.
dans excel:
Sheets("Soumission").Range("a1:h290").PrintOut copies:=1, ActivePrinter:="PDFCreator"
dans excel mais à partir du fichier word:
oWord.ActiveDocument..PrintOut copies:=1, ActivePrinter:="PDFCreator"
Je suis vraiment désespéré. Il faut que je règle cela.
merci de votre aide.
A voir également:
- Imprimer pdf word à partir d'excel
- Word et excel gratuit - Guide
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Liste déroulante excel - Guide
3 réponses
Bonjour,
J'ai l'impression que tu définis l'imprimante pour excel, pas pour word.
Essaie en la choisissant déjà manuellement dans word (si il est affiché, et en mettant un stop dans ta procédure avant l'impression) voir si ça se confirme.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
J'ai l'impression que tu définis l'imprimante pour excel, pas pour word.
Essaie en la choisissant déjà manuellement dans word (si il est affiché, et en mettant un stop dans ta procédure avant l'impression) voir si ça se confirme.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Bonjour,
Je ne suis pas sur d'avoir compris. Vous voulez imprimer un document Word en PDF à partir d'Excel?
Si c'est cela, voici le code:
Voilà
Je ne suis pas sur d'avoir compris. Vous voulez imprimer un document Word en PDF à partir d'Excel?
Si c'est cela, voici le code:
'Allez dans Outils-référence et cochez: Microsoft Word 12.0 Object Library et PDFCreator Option Explicit Sub ToPdf() Dim chemindoc, chemindossier, NomWord, NomPdf As String Dim DefaultPrinter Dim pdfjob Dim DocWord As Word.Document Dim AppWord As Word.Application Set AppWord = New Word.Application AppWord.ShowMe AppWord.Visible = True chemindoc = "c:\users\jsgermain\documents\test\toto.doc" chemindossier = "c:\users\jsgermain\documents" Set DocWord = AppWord.Documents.Open(chemindoc, ReadOnly:=False) NomWord = AppWord.ActiveDocument.Name NomPdf = Left(NomWord, Len(NomWord) - 4) & ".pdf" Set pdfjob = CreateObject("PDFCreator.clsPDFCreator") With pdfjob If .cstart("/NoProcessingAtStartup") = False Then MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator" Exit Sub End If .cOption("UseAutosave") = 1 .cOption("UseAutisaveDirectory") = 1 .cOption("AutosaveDirectory") = chemindossier 'Chemin dossier destination .cOption("AutosaveFilename") = NomPdf .cOption("AutosaveFormat") = 0 .cClearCache End With pdfjob.cDefaultprinter = "PDFCreator" AppWord.ActiveDocument.PrintOut copies:=1 Do Until pdfjob.cCountOfPrintjobs = 1 DoEvents Loop pdfjob.cPrinterStop = False Do Until pdfjob.cCountOfPrintjobs = 0 DoEvents Loop With pdfjob .cDefaultprinter = DefaultPrinter .cClearCache .cClose End With Set pdfjob = Nothing AppWord.Documents.Close AppWord.Visible = False MsgBox "Votre PDF se trouve à cet emplacement: " & chemindossier & NomPdf, vbInformation, "Convertir en PDF" End Sub
Voilà