J'essaie de compléter ma macro mais je ne sais pas comment procéder à la fusion et publipostage à partir de ma table excel préparée (chaque ligne de mon document table = signle). J'ai écrit cette macro mais elle ne fonctionne pas. Et la deuxième chose est que le document final doit être en pdf et je ne sais pas pour l'ajuster.Création de pdf individuel à partir de la table excel en utilisant la macro VBA
Sub RunMerge()
Dim wd As Object
Dim wdocSource As Object
Dim strWorkbookName As String
On Error Resume Next
Set wd = GetObject(, "Word.Application")
If wd Is Nothing Then
Set wd = CreateObject("Word.Application")
End If
On Error GoTo 0
Set wdocSource = wd.Documents.Open(ThisWorkbook.Path & "\" & "ArtSpecDatabase.docx")
strWorkbookName = ThisWorkbook.Path & "\" & ThisWorkbook.Name
wdocSource.MailMerge.MainDocumentType = wdFormLetters
wdocSource.MailMerge.OpenDataSource _
Name:=strWorkbookName, _
AddToRecentFiles:=False, _
Revert:=False, _
Connection:="Data Source=" & strWorkbookName & ";Mode=Read", _
SQLStatement:="SELECT * FROM `Sheet2$`"
With wdocSource.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Dim PathToSave As String
PathToSave = ThisWorkbook.Path & "\" & "docs" & "\" & Sheets("Sheet2").Range("B2").Value2 & ".docx"
'PathToSave = "C:\Users\admin\Desktop\New folder (2)\docs\Merge_Mail_" & Replace(Replace(Now(), "/", "-"), ":", ".") & ".docx"
If Dir(PathToSave, 0) <> vbNullString Then
wd.FileDialog(FileDialogType:=msoFileDialogSaveAs).Show
Else
wd.ActiveDocument.SaveAs2 PathToSave, wdFormatDocumentDefault
End If
wdocSource.Close SaveChanges:=False
Set wdocSource = Nothing
Set wd = Nothing
End Sub
Comment ne pas courir? Est-ce qu'il échoue? Si oui, où? Quelle version de Word et Excel utilisez-vous? – DanL
Il fonctionne, mais je dois définir une occurance. Cette macro crée un seul document et j'ai besoin d'un document de chaque ligne. Et deuxième chose, il enregistre les documents que les fichiers word .doc pas pdf. J'utilise Excel 2010 – Jean
La macro crée des documents Word parce que vous définissez le nom de fichier en tant que ".docx" - devrait utiliser l'extension de fichier appropriée. De plus, si vous voulez créer un document pour chaque ligne, vous devrez parcourir les lignes et appeler le makro pour chaque ligne. – therak