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

Le
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:ú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 !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #4508151
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 !



Gen
Le #4508101
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 !






Publicité
Poster une réponse
Anonyme