Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fusion (publipostage) vers un doc word à partir d'une macro en e xc

2 réponses
Avatar
Gen
Bonjour,

Je voulais créer une macro en excel qui me permettrais de fusionner vers un
document word. Voici le code que j'utilise et qui fonctionne en partie.

Sub test2()

Dim AppWord As Object
Dim Chemin, Fichier, Chemin_Fichier, Source As String
Sheets("Feuil1").Select
Source = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name


Set AppWord = CreateObject("Word.Application")
Set WdDoc = AppWord.Documents.Open("C:\Document.doc")

With WdDoc
.Application.Visible = True
.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:=False
End With
.Application.Visible = True

' Ferme le doc ayant servi de modèle sans l'enregistrer
.Close (False)

End With

' Active Word
Application.ActivateMicrosoftApp xlMicrosoftWord

' Libère la mémoire
Set WdDoc = Nothing


End Sub

Je rencontre 1 problème. Le premier est à la ligne :

.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True

Là, je dois aller dans le fichier word et sélectionner la feuille où se
trouve les données, cependant, je voudrais que ça se fasse automatiquement.

Est-ce que quelqu'un peut m'aider avec ce problème ?

Merci !

2 réponses

Avatar
isabelle
bonjour Gen,

voici un extrait de l'aide,

Cet exemple montre comment créer un document principal et lui associer
la table « Customers » qui se trouve dans la base de données Microsoft Access « Northwind.mdb ».
La chaîne de connexion est affichée dans une boîte de message.

Dim docNew As Document

Set docNew = Documents.Add

With docNew.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource _
Name:="C:Program FilesMicrosoft OfficeOffice" & _
"SamplesNorthwind.mdb", _
LinkToSource:=True, AddToRecentFiles:úlse, _
Connection:="TABLE Customers"
MsgBox .DataSource.ConnectString
End With


isabelle


Bonjour,

Je voulais créer une macro en excel qui me permettrais de fusionner vers un
document word. Voici le code que j'utilise et qui fonctionne en partie.

Sub test2()

Dim AppWord As Object
Dim Chemin, Fichier, Chemin_Fichier, Source As String
Sheets("Feuil1").Select
Source = ActiveWorkbook.Path & "" & ActiveWorkbook.Name


Set AppWord = CreateObject("Word.Application")
Set WdDoc = AppWord.Documents.Open("C:Document.doc")

With WdDoc
.Application.Visible = True
.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:úlse
End With
.Application.Visible = True

' Ferme le doc ayant servi de modèle sans l'enregistrer
.Close (False)

End With

' Active Word
Application.ActivateMicrosoftApp xlMicrosoftWord

' Libère la mémoire
Set WdDoc = Nothing


End Sub

Je rencontre 1 problème. Le premier est à la ligne :

.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True

Là, je dois aller dans le fichier word et sélectionner la feuille où se
trouve les données, cependant, je voudrais que ça se fasse automatiquement.

Est-ce que quelqu'un peut m'aider avec ce problème ?

Merci !



Avatar
Gen
Merci Isabelle mais j'avais déjà envisagé cette solution et ça ne fonctionne
pas.




bonjour Gen,

voici un extrait de l'aide,

Cet exemple montre comment créer un document principal et lui associer
la table « Customers » qui se trouve dans la base de données Microsoft Access « Northwind.mdb ».
La chaîne de connexion est affichée dans une boîte de message.

Dim docNew As Document

Set docNew = Documents.Add

With docNew.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource _
Name:="C:Program FilesMicrosoft OfficeOffice" & _
"SamplesNorthwind.mdb", _
LinkToSource:=True, AddToRecentFiles:úlse, _
Connection:="TABLE Customers"
MsgBox .DataSource.ConnectString
End With


isabelle


Bonjour,

Je voulais créer une macro en excel qui me permettrais de fusionner vers un
document word. Voici le code que j'utilise et qui fonctionne en partie.

Sub test2()

Dim AppWord As Object
Dim Chemin, Fichier, Chemin_Fichier, Source As String
Sheets("Feuil1").Select
Source = ActiveWorkbook.Path & "" & ActiveWorkbook.Name


Set AppWord = CreateObject("Word.Application")
Set WdDoc = AppWord.Documents.Open("C:Document.doc")

With WdDoc
.Application.Visible = True
.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:úlse
End With
.Application.Visible = True

' Ferme le doc ayant servi de modèle sans l'enregistrer
.Close (False)

End With

' Active Word
Application.ActivateMicrosoftApp xlMicrosoftWord

' Libère la mémoire
Set WdDoc = Nothing


End Sub

Je rencontre 1 problème. Le premier est à la ligne :

.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True

Là, je dois aller dans le fichier word et sélectionner la feuille où se
trouve les données, cependant, je voudrais que ça se fasse automatiquement.

Est-ce que quelqu'un peut m'aider avec ce problème ?

Merci !