Publipostage depuis Excel

Le
RENAUD Eric
Bonjour,
Je souhaite effectuer un publipostage à partir d'Excel.
Tout se passe bien sauf qu'à chaque fois, j'ai la boîte de dialogue de
Word intitulée Sélectionnez le tableau et là je dois choisir ma plage de
données pour la fusion et pourtant dans mon code, j'ai précisé la plage
de données avec Connection:="Plage" où Plge est une zone nommée.

Sub Mailing()
Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.Visible = True
AppWord.Documents.Open "C:ExcelCastagnolaOF_Semaine A.doc"
With AppWord.ActiveDocument.MailMerge
.MainDocumentType = wdCatalog
.OpenDataSource Name:="C:ExcelCastagnolaBdD_semaine2.xls", _
ReadOnly:=True, _
Connection:="Plage"
End With
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
.Execute
End With
End Sub

D'avance 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
Papyjac
Le #17570471
Bonjour Eric,

J'ai utilisé l'enregistreur de macro sous word. je n'obtiens pas un code
simple comme le tien.

Connection:="Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=.... etc

Je ne sais pas si c'est utilse, mais il ne me pose plus la question ensuite


--
Papyjac


"RENAUD Eric" a écrit :

Bonjour,
Je souhaite effectuer un publipostage à partir d'Excel.
Tout se passe bien sauf qu'à chaque fois, j'ai la boîte de dialogue de
Word intitulée Sélectionnez le tableau et là je dois choisir ma plage de
données pour la fusion et pourtant dans mon code, j'ai précisé la plage
de données avec Connection:="Plage" où Plge est une zone nommée.

Sub Mailing()
Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.Visible = True
AppWord.Documents.Open "C:ExcelCastagnolaOF_Semaine A.doc"
With AppWord.ActiveDocument.MailMerge
.MainDocumentType = wdCatalog
.OpenDataSource Name:="C:ExcelCastagnolaBdD_semaine2.xls", _
ReadOnly:=True, _
Connection:="Plage"
End With
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
.Execute
End With
End Sub

D'avance merci



RENAUD Eric
Le #17570731
Bonjour, J'ai eu ça dans l'aide à OpenDataSource

Cet exemple montre comment créer un document principal et lui associer
la feuille de calcul Microsoft Excel « Names.xls ». L'argument
Connection spécifie les données à extraire de la plage nommée « Sales ».

Dim docNew As Document

Set docNew = Documents.Add

With docNew.MailMerge
.MainDocumentType = wdCatalog
.OpenDataSource Name:="C:DocumentsNames.xls", _
ReadOnly:=True, _
Connection:="Sales"
End With


Papyjac a écrit :
Bonjour Eric,

J'ai utilisé l'enregistreur de macro sous word. je n'obtiens pas un code
simple comme le tien.

Connection:="Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=.... etc

Je ne sais pas si c'est utilse, mais il ne me pose plus la question ensuite




Papyjac
Le #17574221
Bonjour Eric,

Oui, j'ai vu cet exemple : c'est une bonne méthode, mais il reste à prouver
que ça marche
J'ai aussi retrouvé un code que j'avais crée il y a plusieurs années
J'avais mis Connection:="Feuille de calcul entière" ; tu es dans quelle
version d'Excel ?

As tu fais un test de ton publipostage sans aucun VBA
Et un autre test où le lien entre le document type et le classeur Excel est
déjà établi

--
Papyjac


"RENAUD Eric" a écrit :

Bonjour, J'ai eu ça dans l'aide à OpenDataSource

Cet exemple montre comment créer un document principal et lui associer
la feuille de calcul Microsoft Excel « Names.xls ». L'argument
Connection spécifie les données à extraire de la plage nommée « Sales ».

Dim docNew As Document

Set docNew = Documents.Add

With docNew.MailMerge
.MainDocumentType = wdCatalog
.OpenDataSource Name:="C:DocumentsNames.xls", _
ReadOnly:=True, _
Connection:="Sales"
End With


Papyjac a écrit :
> Bonjour Eric,
>
> J'ai utilisé l'enregistreur de macro sous word. je n'obtiens pas un code
> simple comme le tien.
>
> Connection:="Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=.... etc
>
> Je ne sais pas si c'est utilse, mais il ne me pose plus la question ensuite
>
>



Publicité
Poster une réponse
Anonyme