Convertir un .doc en .pdf avec macro Word

Bonjour,

J'ai créé sur une page WOrd 2007, un bouton (par l'intermédiaire de la "Boîte à Outils Contrôles" sur lequel j'aimerais que lorsque l'on clique dessus, le fichier .doc se convertisse en fichier .pdf

J'ai cherché sur beaucoup de forums et de sites Internet mais rien ne fonctionne =s J'ai tapé le code suivant sous Microsoft Visual Basic 6.3 :

Private Sub CommandButton1_Click()

Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
NomWord = ThisWorkbook.Name
NomPdf = Left(NomWord, Len(NomWord) - 4) & ".pdf"
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") = ThisWorkbook.Path
.cOption("AutosaveFilename") = NomPdf
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ThisWorkbook.PrintOut copies:=1, ActivePrinter:="PDFCreator"
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

End Sub

J'ai vraiment besoin d 'aide. Merci

3 réponses

  1. est-ce que PDFCreator est installé ? => une imprimante doit porter le nom exact "PDFCreator"
    0
    1. Oui il est installé
      0
      1. J'ai réussi à trouver le code mais j'ai un autre petit soucis qui se pose.

        Lorsque je rentre le nom du fichier que je veux convertir en pdf, word n'accepte de le faire seulement si le fichier n'est pas le même que celui sur lequel se trouve le code.

        Par exemple : Ce fichier s'appelle test02.doc
        Private Sub PDFCreator_Click()
        Dim wrd As New Word.Application
        imprimante = wrd.ActivePrinter
        wrd.Visible = False
        wrd.ScreenUpdating = False
        wrd.ActivePrinter = "PDFCreator"
        wrd.Documents.Open ("D:\Travail\test01.doc") => je veux convertir le fichier test01.doc
        wrd.ActiveDocument.PrintOut
        wrd.ActiveDocument.Close (False)
        wrd.ActivePrinter = imprimante
        wrd.Quit (False)
        Set wrd = Nothing
        End Sub

        Ca fonctionne très bien. Par contre ce fichier s'appelle test02.doc
        Private Sub PDFCreator_Click()
        Dim wrd As New Word.Application
        imprimante = wrd.ActivePrinter
        wrd.Visible = False
        wrd.ScreenUpdating = False
        wrd.ActivePrinter = "PDFCreator"
        wrd.Documents.Open ("D:\Travail\test02.doc")=> je veux convertir le fichier test02.doc
        wrd.ActiveDocument.PrintOut
        wrd.ActiveDocument.Close (False)
        wrd.ActivePrinter = imprimante
        wrd.Quit (False)
        Set wrd = Nothing
        End Sub

        Le code ne fonctionne pas et m'affiche que le fichier test02.doc est verrouillé pour modification par ma session et que je peux soit :
        - ouvrir une copie en lecture seule
        - créer une copie locale et fusionner les modifications ultérieurement
        - recevoir une notification quand la copie d'origine est modifiée

        Quelque sait comment faire pour que je puisse convertir le fichier ouvert ?
        0