OVH Cloud OVH Cloud

publipostage

4 réponses
Avatar
Ben
Bonjour,
Je voudrais mettre en place un publipostage Word à partir de ma base access,
pour un utilisateur ne connaissant ni Word ni access.
J'ai créé une requête qui sélectionne les adresses concernées par le mailing.
Mais après, je bloque... J'ai bien consulté :
http://officesystem.access.free.fr/vba/publipostage.htm,
mais je n'arrive pas à applique ce code à ma base.
Quelqu'un pourrait il m'expliquer les étapes car je ne suis pas au point du
tout.
Merci d''avance,
Ben

4 réponses

Avatar
Gafish
Ben wrote:
Bonjour,


Bonjour,

Je voudrais mettre en place un publipostage Word à partir de ma base
access, pour un utilisateur ne connaissant ni Word ni access.
J'ai créé une requête qui sélectionne les adresses concernées par le
mailing. Mais après, je bloque... J'ai bien consulté :
http://officesystem.access.free.fr/vba/publipostage.htm,
mais je n'arrive pas à applique ce code à ma base.


Je te conseille de regarder, sur le même site, cette page :
http://officesystem.access.free.fr/vba/signets.htm
C'est la méthode que j'utiliserai à ta place. Tu crées des signets sur un
document Word, et tu y insères à partir de ta requête les données depuis
Access, au clic sur un bouton par exemple.

Regarde ce lien et reviens si tu as un souci.

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Ben
Merci Gafish.
Alors je reviens car j'ai fait ça mais ça ne marche pas : cela ouvre mon
document word appelé "Publipostage_Modèle.doc", me crée un nouveau document
word appelé "Document de Publipostage.Doc" mais qui est vide. Je crois ne pas
bien prendre en compte le signet et champs signet dans mon
"Publipostage_Modèle.doc".
En plus, si j'enlève "On Error Resume Next", j'ai une erreur d'execution
avec des paramètres de ma requête manquant...
Pas simple, mais je compte sur vous !

On Error Resume Next
Dim W_App As New Word.Application
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "publipostage"
Set Rs = Db.OpenRecordset(Strsql)

With W_App
.Visible = True
.Documents.Add [CurrentProject].[Path] & "Publipostage_Modèle.doc"
.ActiveDocument.Bookmarks("nomlocataire").Select
.Selection.Text = Rs.Fields("nomloc")
.ActiveDocument.SaveAs ([CurrentProject].[Path] & "Document de
Publipostage.Doc")
.Quit
End With
Set W_App = Nothing


Ben



Ben wrote:
Bonjour,


Bonjour,

Je voudrais mettre en place un publipostage Word à partir de ma base
access, pour un utilisateur ne connaissant ni Word ni access.
J'ai créé une requête qui sélectionne les adresses concernées par le
mailing. Mais après, je bloque... J'ai bien consulté :
http://officesystem.access.free.fr/vba/publipostage.htm,
mais je n'arrive pas à applique ce code à ma base.


Je te conseille de regarder, sur le même site, cette page :
http://officesystem.access.free.fr/vba/signets.htm
C'est la méthode que j'utiliserai à ta place. Tu crées des signets sur un
document Word, et tu y insères à partir de ta requête les données depuis
Access, au clic sur un bouton par exemple.

Regarde ce lien et reviens si tu as un souci.

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
Gafish
Ben wrote:
Merci Gafish.
Alors je reviens car j'ai fait ça mais ça ne marche pas : cela ouvre
mon document word appelé "Publipostage_Modèle.doc", me crée un
nouveau document word appelé "Document de Publipostage.Doc" mais qui
est vide. Je crois ne pas bien prendre en compte le signet et champs
signet dans mon "Publipostage_Modèle.doc".


Ce qu'il faut que tu fasses, c'est un document modèle bien propre et avec
des signets.
Dans le lien que je t'ai donné, ca correspond à doc1.doc, ici :
.Documents.Open ("doc1.doc")

Cette ligne sert à ouvrir le document.

Ensuite, il ajoute les données deriière les signets avec les bookmaks select
et les insertafter.
Enfin le document est sauvegardé sous un autre nom :
.ActiveDocument.SaveAs ("Doc2.Doc")
C'est celui comprenant les données.
Tu peux très bien (tu as même interêt à le faire) lui donner un nom,
pourquoi pas fonction des données que tu insères. Par exemple si tu fais des
fiches de personnes, donner au document le nom de la personne, ou la date du
jour par exemple :

.ActiveDocument.SaveAs ("MonDocument" & day(date()) & month(date()) &
year(date()) & ".Doc")

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Ben
Désolé mais je n'y arrive pas.
Ne viendrait-ce pas du fait que si j'enlève "On Error Resume Next" ca ma met
"Trop peu de paramètre. 7 attendu" ?
Ben



Ben wrote:
Merci Gafish.
Alors je reviens car j'ai fait ça mais ça ne marche pas : cela ouvre
mon document word appelé "Publipostage_Modèle.doc", me crée un
nouveau document word appelé "Document de Publipostage.Doc" mais qui
est vide. Je crois ne pas bien prendre en compte le signet et champs
signet dans mon "Publipostage_Modèle.doc".


Ce qu'il faut que tu fasses, c'est un document modèle bien propre et avec
des signets.
Dans le lien que je t'ai donné, ca correspond à doc1.doc, ici :
..Documents.Open ("doc1.doc")

Cette ligne sert à ouvrir le document.

Ensuite, il ajoute les données deriière les signets avec les bookmaks select
et les insertafter.
Enfin le document est sauvegardé sous un autre nom :
..ActiveDocument.SaveAs ("Doc2.Doc")
C'est celui comprenant les données.
Tu peux très bien (tu as même interêt à le faire) lui donner un nom,
pourquoi pas fonction des données que tu insères. Par exemple si tu fais des
fiches de personnes, donner au document le nom de la personne, ou la date du
jour par exemple :

..ActiveDocument.SaveAs ("MonDocument" & day(date()) & month(date()) &
year(date()) & ".Doc")

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr