Bonjour à tous,

Réel amateur débutant en VBA, j'ai réussi à créer un publipostage de ma base de données Excel vers Word à l'aide de macros.
(de mon fichier "données.xls", je crée une copie "Excel_FUSION.xls" (puis fermerture automatique du répertoire EL)/(ouverture physique de Word), référence à mon programme "Word PUBLIPOSTAGE.doc" via la macro)

En voulant "automatiser" le passage d'excel à Word, j'ai inclus un programme d'ouverture de mon projet Publipostage de Word dans Excel ... puis une fonction autoopen dans Word.

Programme dans Excel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
'-----pour ouvrir le document à fusionner
Dim doc, wordapp                           
Set wordapp = CreateObject("Word.application")  
wordapp.ShowMe
wordapp.Visible = True
Set doc = wordapp.documents.Open("C:\Users\bibi\Trame word-PUBLIPOSTAGE.doc")
wordapp.Activate
Application.Quit
 
Workbooks("Excel_FUSION.xls").Save
Workbooks("Excel_FUSION.xls").Close
 
End Sub
Programme de l'autoopen dans Word :

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
Sub Autoopen()
Dim docDP As Document
Set docDP = ActiveDocument
 
ActiveDocument.Activate
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
            .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
        End With
        .Execute Pause:=False
    End With
 
docDP.Close wdDoNotSaveChanges
End Sub
C'est là que les problèmes apparaissent... avec notamment :
1- une annonce d'erreur d'incompatibilité de type 13
2 - un surlignage en jaune systématique dans excel de la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set doc = wordapp.documents.Open("C:\Users\bibi\Trame word-PUBLIPOSTAGE.doc")
3- l'impossibilité de fermer le fichier "source.xls", qui semble "tourner sans arrêt" et sans passer par une boite de dialogue "voulez enregistrer les modif..."*

4- Dans Word ensuite : après avoir fermé physiquement Excel, un surlignage en jaune de la ligne : .Destination = wdSendToNewDocument.
5- enfin, un message d'excel annonçant qu'il "attend la fin de l’exécution d'une action OLE d'une autre application"

Mes codes sont certainement truffés d'erreurs et de choses inutiles... merci de vos lumières.

Je me pose également la question dans de savoir s'il faut cocher dans les "Réferences VBA- Project" la case "Microsoft Word 16.0 Objet Library" dans Excel... et "Excel 16.0 Objet Library" dans word ?
d'autres questions à venir je pense avec ce post..
Merci par avance de vos contributions