Hisoka76 Le magicien des cartes | bonjour, je dois ajouter des informations d'une feuille word au publipostage (fusion) car j'aurai des documents fixes et des fichiers variables.Pour cela je dois utiliser vba word, j'ai inscri le code ci dessous et ça ne marche pas:Il me dit que le fichier est corrompu, ça veut dire quoi svp
Code :
- Private Sub CmdAjout_Click()
-
- Dim AppWord As Word.Application
- Dim App As Words
- Dim mvarDocumentId As Variant
-
-
- Set AppWord = CreateObject("Word.Application.8" )
- Set mvarDocumentId = AppWord.Documents.Add(CStr("chemin du fichier DOC" ) + CStr("Nom du fichier DOC" ), False)
- AppWord.ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
- AppWord.ActiveDocument.MailMerge.OpenDataSource Name:="" & "Nom du fichier DOC", ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=True, PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, format:=wdOpenFormatAuto, Connection:="DSN=Text Files;DBQ=" & "" & ";DefaultDir=" & "" & ";DriverId=27;MaxBufferSize=2048;PageTimeout=5;", SQLStatement:="SELECT * FROM `Nom du fichier DOC`", SQLStatement1:=""
-
- With AppWord.ActiveDocument.MailMerge
- .Destination = wdSendToNewDocument
- .MailAsAttachment = True
- .MailAddressFieldName = ""
- .MailSubject = ""
- .SuppressBlankLines = True
- With .DataSource
- .FirstRecord = wdDefaultFirstRecord
- .LastRecord = wdDefaultLastRecord
- End With
- .Execute Pause:=True
- End With
- AppWord.ActivePrinter = "PDFCreator"
- '"PDFCreator"
- AppWord.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, Copies:="", Pages:="", PageType:=wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False
- AppWord.ActivePrinter = "PDFCreator"
-
- mvarDocumentId.Close False
- 'attente que l'impression des documents soit finis avant de quitter word
- While AppWord.BackgroundPrintingStatus <> 0
- Wend
-
- AppWord.Quit wdDoNotSaveChanges 'je ne sauvegarde pas les documents ? la fin de l'impression
- Set AppWord = Nothing
-
- End Sub
|
|