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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager