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.