Export PDF Word depuis macro Excel
Bonjour à tous,
Travaillant sous macOS, version 2012, j'ai une feuille de calcul qui alimente une série de fichiers Word.
Les fichiers Word et la feuille de calcul sont enregistrés dans le même fichier.
Mon objectif est d'enregistrer chaque fichier Word en PDF avec les données de la feuille de calcul puis de refermer le Word sans sauvegarder pour garder la version initiale avec les signets.
Les lignes de code que j'ai trouvé pour sauvegarder ne passent pas, je ne comprends pas pourquoi.
J'ai besoin d'un coup de main s'il vous plaît, merci d'avance pour vos propositions de solution et belle soirée,
Alexandre
Sub Test()
Call RemplirWord("Docuiment test", 3)
End Sub
Sub RemplirWord(Name As String, NumLigne As Integer)
Dim objWordApp As Object
Dim objDoc As Object
'--------------
'Définir le chemin du dossier
'--------------
Dim FileName As String
Dim NameDOCX As String
Dim NamePDF As String
Dim chemin As String
Dim WordDoc As String
NameDOCX = Name & ".docx"
NamePDF = Name & ".pdf"
chemin = Workbooks(ActiveWorkbook.Name).Path
WordDoc = chemin + Application.PathSeparator + NameDOCX
PDFDoc = chemin + Application.PathSeparator + NamePDF
'--------------
'--------------
'Récupérer les données depuis la feuille de calcul
'--------------
Dim Prenom As String
Dim Nom As String
Dim SIRET As String
Prenom = ActiveSheet.Cells(NumLigne, 2)
Nom = ActiveSheet.Cells(NumLigne, 3)
SIRET = ActiveSheet.Cells(NumLigne, 4)
'--------------
On Error Resume Next
Set objWordApp = GetObject(, "Word.Application")
On Error GoTo 0
'--------------
'If Word was not previously open then object variable will be nothing
'Therefore Create the Object
'--------------
If objWordApp Is Nothing Then
Set objWordApp = CreateObject("Word.Application")
End If
'--------------
'Ouvir le fichier
'--------------
With objWordApp
.Visible = True
.Documents.Open WordDoc
End With
'--------------
'--------------
'Remplir le fichier Word
'--------------
'Rmq : dans le document word, il faut avoir placé des signets aux endroits qu'on veut remplir
With objWordApp.ActiveDocument
'remplir le document
.Bookmarks("Prenom").Range.Text = Prenom
.Bookmarks("Nom").Range.Text = Nom
.Bookmarks("SIRET").Range.Text = SIRET
.Activate
'enrregistrer le document en PDF
'.SaveAs2 FileName:=NamePDF, FileFormat:=wdFormatPDF
'.SaveAs _
FileName:=NamePDF, _
FileFormat:=wdFormatPDF
.ExportAsFixedFormat OutputFileName:=PDFDoc, ExportFormat:=wdExportFormatPDF
.Close
End With
End SubBonjour,
Bien que ne connaissant pas VBA Word, je tente ma chance. A première vue, le code parait vraiment bien. Je dirais qu'il faut changer :
chemin = ActiveWorkbook.Path 'voir thisworkbook.path (si le classeur actif sera celui executant)
WordDoc = chemin & Application.PathSeparator & NameDOCX
PDFDoc = chemin & Application.PathSeparator & NamePDF
'et éventuellement Application.PathSeparator par ":" ou "/" si jamais le séparateur n'est pas le bon...
'...à la fin :
'éventuellement mettre NameDOCX voire WordDoc à la place de NamePDF dans la méthode Saveas.
'et remplacer la petite coquille fort probable dans Call RemplirWord("Docuiment test", 3)Par ailleurs, cela nécessite a priori d'avoir une version adobe permettant l'export, enfin je crois...
Cdlt,
Bonjour,
Merci pour ce retour.
J'ai essayé et cela ne passe pas.
Avec "PDFDoc" ou "NamePDF", "WordDoc", etc. j'ai toujours la même erreur d'exécution 5 : Argument ou appel de procédure incorrect.
le séparateur me semble bien (voir screenshot)
Quand je cliques à la main cela fonctionne donc je suppose que adobe est OK.
D'autres idées?
Bonne journée,
Alexandre
Bonjour,
Vous avez fait un essai à l'enregistreur parce que c'est peut-être une question de nom de l'argument de la méthode export. Ils peuvent être différents sur mac.
Cdlt,