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 :
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 '-----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
C'est là que les problèmes apparaissent... avec notamment :
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
1- une annonce d'erreur d'incompatibilité de type 13
2 - un surlignage en jaune systématique dans excel de la ligne :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..."*
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set doc = wordapp.documents.Open("C:\Users\bibi\Trame word-PUBLIPOSTAGE.doc")
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
Partager