Publipostage VBA via connexion DDE
Bonjour à tous,
J'ai créé dans un fichier Excel 2010 une macro afin de lancer un publipostage sous Word 2010, type facture.
Jusque là tout va bien, sauf que visiblement Word n'accepte pas qu'un champs de fusion comporte plus de 255 caractères, ce qui fait que certains champs sont tronqués.
A priori, le problème semble venir de la connexion OLE qu'emploie nativement Word et Excel.
Comment forcer que la connexion se fasse par DDE (par VBA), ce qui semble être indiqué dans les posts repérés sur le net ?
Ci-dessous mon script actuel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| NomBase = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
Application.ScreenUpdating = False
Set appWord = CreateObject("Word.Application")
appWord.Visible = True
'*** Ouverture du modèle word
ModeleFacture = Worksheets("Paramètres").Range("FactureFichier")
Set docWord = appWord.Documents.Open(ModeleFacture)
'*** paramétrage du publipostage pour le document spécifié
With docWord.MailMerge
.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & NomBase & "; ReadOnly=True;", _
SQLStatement:="SELECT * FROM [Publipostage_Annexe$]"
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
'Exécute l'opération de publipostage
.Execute Pause:=False
End With
Application.ScreenUpdating = True
docWord.Close False
Set docWord = Nothing |
J'ai vu sur certains posts qu'il faillait forcer via SubType:=wdMergeSubTypeWord2000 au niveau de OpenDataSource, mais quand je l'utilise, mon document Word s'ouvre sur une fenêtre demandant de sélectionner une table.
Merci d'avance de votre aide.