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

Publipostage depuis Excel

3 réponses
Avatar
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:\Excel\Castagnola\OF_Semaine A.doc"
With AppWord.ActiveDocument.MailMerge
.MainDocumentType = wdCatalog
.OpenDataSource Name:="C:\Excel\Castagnola\BdD_semaine2.xls", _
ReadOnly:=True, _
Connection:="Plage"
End With
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
.Execute
End With
End Sub

D'avance merci

3 réponses

Avatar
Papyjac
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



Avatar
RENAUD Eric
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




Avatar
Papyjac
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
>
>