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

Filtrage et publipostage (suite tuto faqword.free.fr)

22 réponses
Avatar
Ludovic Mauger
Bonjour,

J'ai une base Excel qui contient plusieurs noms client avec un parc
matériel. Je souhaite envoyer un courrier à chacun de mes clients avec les
informations sur leur parc.

Un publipostage classique me crée x pages pour le même client.

Je souhaite n'avoir qu'une page par client avec toutes les machines de son
parc sur cette page.

Après avoir consulté le site http://faqword.free.fr , j'ai testé cette
méthode :

http://faqword.free.fr/articles.php?lng=fr&pg=1181

Une fois que je valide l'étape 4 en cliquant sur OK, j'ai le message
suivant:

"Word n'a pas pu ouvrir la source de données" puis "Impossible de remplacer
la selection par la base de données spécifiée".

Après vérification, cela ne se produit pas si je ne mets pas de filtre
d'enregistrement (cf le point: Dans l'onglet 'Filtrer les enregistrements",
choisir le champ "Nom" (selon notre exemple) égal à : taper un mot
quelconque, "toto" par exemple"

J'ai testé avec différentes sources mais ça ne passe pas.

Avez-vous déjà eu ce genre de problème et savez-vous comment y remédier?

Merci d'avance

10 réponses

1 2 3
Avatar
Ludovic
Sisi je l'avais lu jusqu'au bout pour l'espace mais j'ai dû me tromper quand
je l'ai inséré.

Quant à remplacer toto par autre chose, je n'avais pas compris qu'il fallait
le remplacer par le "MERGEFIELD" je mettais une valeur à la place, donc le
résultat était logique.

En revanche malgré votre aide je n'arrive toujours pas à mes fins, comme tu
peux le constater dans la réponse que j'ai faite à Anacoluthe qui s'est
gentillement proposé de te rejoindre pour m'éclairer.

Je ne vous cache pas que je ne travaille jamais sur les bases de données :-)

Merci


"Circé" a écrit dans le message de news:

Bonsoir Ludovic,

Ludovic avait soumis l'idée :
Le problème est que si je ne mets aucun client dans ma sélection, je me
retrouve avec tous les clients sur la même page. Alors que moi, je veux
un client par page, mais avec l'intégralité de son parc...



Si tu mets "Dupont" dans ta sélection, tu n'auras que Dupont avec tout son
matériel.
Donc, à la place de "Dupont", tu dois reprendre le champ "Client"

Relis bien le post d'anacoluthe (que l'on remercie en passant d'être
venu...)

{ DATABASE ... SELECT `Materiel`, `prix` FROM ..
WHERE ((`Client` = '{MERGEFIELD Client}')) ... }

En fait tu n'avais pas lu mon tuto jusqu'au bout... Car en 7) j'évoque le
problème d'espace avant le WHERE...
et en 8) j'expliquer qu'il faut remplacer toto par le champ...

C'est plus clair ?...

Circé


"Circé" a écrit dans le message de
news:
Ludovic a exposé le 25/04/2007 :


1) As-tuè bien créé une base sans doublon (càd avec les noms de tous
tes clients uniques) ?


Oui, j'ai créé ma base filtrée sans doublons dans une nouvelle feuille,
puis dans un nouveau classeur quand j'ai vu que cela ne fonctionnait
pas. Peut-être que je devrais réessayer depuis que tu m'as donné la
première solution...


C'est possible de mettre la base dans le même classeur, à condition
d'utiliser le protocole OLE (qui peut poser problème pour autre chose)
http://faqword.free.fr/articles.php?lng=fr&pg11

2) As-tu bien commencé ta fusion en sélectionnant cette base filtrée ?
Oui, j'ai j'ai pointé dans un premier temps à faire mon publipostage en

appelant la base filtrée


OK

3) As-tu bien insérer le champ DATABASE depuis la base non filtrée ?
J'ai ajouté la base non filtrée et fait mes options de requête sur

cette dernière (filtrer les enregistrement et sélectionner les champs).
Une fois le champ ajouté, j'ajoute l'espace avant "WHERE", ce qui me
donne WHERE ((`Nom` = 'Dupont'))" Dupont étant le nom du premier client
de ma base. J'ai essayé de mettre l'intitulé de ma colonne à la place
de "Dupont" mais cela ne donne rien. Je pense que c'est ici que je me
trompe.


Pourquoi sélectionner Dupont ? Je pensais que tu voulais faire une
fusion pour CHACUN de tes clients... En principe tu ne devrais pas avoir
à faire de sélection sur les clients...

Circé
http://faqword.free.fr


Merci pour votre site et pour ton aide en tous cas.



Merci de ton aide Circé et aux autres aussi si la lumière est en vous
:-)


En fait, cette méthode est le fruit d'une convergence du cerveau
d'anacoluthe et du mien. Donc, je connais bien cette solution.
Je dois dire quand même que l'idée excellente vient d'anacoluthe... et
j'ai élaboré ensuite la solution pour la faq.
Si anacoluthe passe par là, il aura peut être quelque chose à
ajouter... ;)

Circé
http://faqword.free.r





"Circé" a écrit dans le message de news:

Bonjour Ludovic,

Oui, je connais ce problème que je corrige d'une manière un peu
étonnante, en tous les cas j'ai testé x fois cette solution et elle
a toujours fonctionné :

Le champ DATABASE est créé, même s'il ne fonctionne pas. Affiche-le
via Alt+F9.

A la fin du champs, tu dois trouver la fonction SQL "WHERE". Ajoute
simplement un espace supplémentaire avant WHERE.
Appuie sur F9 pour que le champ se mette à jour et reessaie.

Circé
http://faqword.free.fr

Ludovic Mauger a formulé ce mercredi :
Bonjour,

J'ai une base Excel qui contient plusieurs noms client avec un parc
matériel. Je souhaite envoyer un courrier à chacun de mes clients
avec les informations sur leur parc.

Un publipostage classique me crée x pages pour le même client.

Je souhaite n'avoir qu'une page par client avec toutes les machines
de son parc sur cette page.

Après avoir consulté le site http://faqword.free.fr , j'ai testé
cette méthode :

http://faqword.free.fr/articles.php?lng=fr&pg81

Une fois que je valide l'étape 4 en cliquant sur OK, j'ai le
message suivant:

"Word n'a pas pu ouvrir la source de données" puis "Impossible de
remplacer la selection par la base de données spécifiée".

Après vérification, cela ne se produit pas si je ne mets pas de
filtre d'enregistrement (cf le point: Dans l'onglet 'Filtrer les
enregistrements", choisir le champ "Nom" (selon notre exemple) égal
à
: taper un mot quelconque, "toto" par exemple"

J'ai testé avec différentes sources mais ça ne passe pas.

Avez-vous déjà eu ce genre de problème et savez-vous comment y
remédier?

Merci d'avance
























Avatar
Anacoluthe
Bonjour !

'Ludovic' nous a écrit ...
Le champ MERGEFIELD "client" vient de la base filtrée (test filtre.xls).
Lorsque je lance ma fusion ainsi, j'ai x pages avec une page par ligne de ma
base... Et je n'ai aucun contenu concernant le parc. Je n'ai que le champ
MERGEFIELD qui s'affiche en fait...


Pas de panique. Sur ce forum on y arrive TOUJOURS !

Donc votre champ DATABASE ne donne ... rien.

Bon. Commencez par faire abstraction complète du publipostage.

Dans un document vous allez créer un champ DATABASE comme vous le
souhaitez en le filtrant sur UN seul client réel.

Une fois que vous avez compris comment obtenir UN champ DATABASE
vous allez revenir au publipostage indirect pour obtenir
N pages de N champs DATABASE chacun filtré sur vos N clients différents
en imbriquant le MERGEFIELD Client dans le champ DATABASE.

Le publipostage indirect est la technique qui consiste à utiliser
des champs INCLUDETEXT, INCLUDEPICTURE, DATABASE contenant
eux-mêmes des champs MERGEFIELD du publipostage.
Le publipostage indirect est le fin du fin du publipostage WORD :
il pose TOUJOURS des problèmes aux débutants...

Si vraiment vous n'y arrivez pas, placez vos fichiers exemples dans
un fichier zip sur http://cjoint.com/ , on vous aidera à le faire.

Pour Geo : Tout ça n'vaut pas une p'tit' macro ! MDR de MDR
Pas certain du tout qu'elle soit plus simple pour un débutant... ;-)

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS

Avatar
Ludovic
OK, j'ai recréé un nouveau document, pris ma DATABASE source et j'arrive
bien à faire apapraître le client que j'ai selectionné dans Word, avec tous
les champs voulus.

Une fois que j'ajoute le MERGEFIELD, j'ai bien x pages correspondant à mes x
lignes qui se créent lors de ma fusion. Cependant, je n'ai plus rien
concernant le champ DATABASE....

J'ai mis mes fichiers test ici:
Source: http://cjoint.com/?eAoWfU0c1X
Document Word: http://cjoint.com/?eAoWLmYn4g

Merci beaucoup pour votre aide.


"Anacoluthe" a écrit dans le message de news:
eK0G7k$
Bonjour !

'Ludovic' nous a écrit ...
Le champ MERGEFIELD "client" vient de la base filtrée (test filtre.xls).
Lorsque je lance ma fusion ainsi, j'ai x pages avec une page par ligne de
ma base... Et je n'ai aucun contenu concernant le parc. Je n'ai que le
champ MERGEFIELD qui s'affiche en fait...


Pas de panique. Sur ce forum on y arrive TOUJOURS !

Donc votre champ DATABASE ne donne ... rien.

Bon. Commencez par faire abstraction complète du publipostage.

Dans un document vous allez créer un champ DATABASE comme vous le
souhaitez en le filtrant sur UN seul client réel.

Une fois que vous avez compris comment obtenir UN champ DATABASE
vous allez revenir au publipostage indirect pour obtenir
N pages de N champs DATABASE chacun filtré sur vos N clients différents
en imbriquant le MERGEFIELD Client dans le champ DATABASE.

Le publipostage indirect est la technique qui consiste à utiliser
des champs INCLUDETEXT, INCLUDEPICTURE, DATABASE contenant
eux-mêmes des champs MERGEFIELD du publipostage.
Le publipostage indirect est le fin du fin du publipostage WORD :
il pose TOUJOURS des problèmes aux débutants...

Si vraiment vous n'y arrivez pas, placez vos fichiers exemples dans
un fichier zip sur http://cjoint.com/ , on vous aidera à le faire.

Pour Geo : Tout ça n'vaut pas une p'tit' macro ! MDR de MDR
Pas certain du tout qu'elle soit plus simple pour un débutant... ;-)

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS



Avatar
Anacoluthe
Bonjour !

'Ludovic' nous a écrit ...
J'ai mis mes fichiers test ici:
Source: http://cjoint.com/?eAoWfU0c1X
Document Word: http://cjoint.com/?eAoWLmYn4g


hi hi hi
WHERE ((`client` = '{MERGEFIELD client}'))" h
vous avez entré les {} comme des accolades et non un CHAMP Mergefield !!!

Les champs {} s'écrivent avec Ctrl+F9
Ou dans la barre d'outils fusion-publipostage : bouton 'Insérer les
champs de fusion'

Allez encore un petit effort Ludovic ! Vous y arriverez tout seul !

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS

Avatar
Ludovic
Mouhahahahahah!!!! Quelle horreur... Tout ça pour ça.... :-)

Je ne savais pas qu'il y'avait une différence entre de la simple saisie
d'accolades et le CTRL+F9....

Je vais essayer avec mon document source maintenant.

Merci de ne pas rigoler hein!!!! :-)




"Anacoluthe" a écrit dans le message de news:
%231%23$
Bonjour !

'Ludovic' nous a écrit ...
J'ai mis mes fichiers test ici:
Source: http://cjoint.com/?eAoWfU0c1X
Document Word: http://cjoint.com/?eAoWLmYn4g


hi hi hi
WHERE ((`client` = '{MERGEFIELD client}'))" h
vous avez entré les {} comme des accolades et non un CHAMP Mergefield !!!

Les champs {} s'écrivent avec Ctrl+F9
Ou dans la barre d'outils fusion-publipostage : bouton 'Insérer les
champs de fusion'

Allez encore un petit effort Ludovic ! Vous y arriverez tout seul !

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS



Avatar
Ludovic
Ca y'est, ça marche même avec ma base réelle. J'ai juste un problème sur les
champs où j'ai une apostrophe. J'ai par exemple des clients du type
"L'OUIVIN". Il me dit impossible d'ouvrir la base lorsqu'il passe sur cet
enregistrement. Si je le remplace par "L OUIVIN" dans ma base filtrée, ça
passe impeccable...

Merci encore pour vos lumières

"Ludovic" a écrit dans le message de news:

Mouhahahahahah!!!! Quelle horreur... Tout ça pour ça.... :-)

Je ne savais pas qu'il y'avait une différence entre de la simple saisie
d'accolades et le CTRL+F9....

Je vais essayer avec mon document source maintenant.

Merci de ne pas rigoler hein!!!! :-)




"Anacoluthe" a écrit dans le message de
news: %231%23$
Bonjour !

'Ludovic' nous a écrit ...
J'ai mis mes fichiers test ici:
Source: http://cjoint.com/?eAoWfU0c1X
Document Word: http://cjoint.com/?eAoWLmYn4g


hi hi hi
WHERE ((`client` = '{MERGEFIELD client}'))" h
vous avez entré les {} comme des accolades et non un CHAMP Mergefield !!!

Les champs {} s'écrivent avec Ctrl+F9
Ou dans la barre d'outils fusion-publipostage : bouton 'Insérer les
champs de fusion'

Allez encore un petit effort Ludovic ! Vous y arriverez tout seul !

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS







Avatar
Anacoluthe
Bonjour !

'Ludovic' nous a écrit ...
Ca y'est, ça marche même avec ma base réelle. J'ai juste un problème sur les
champs où j'ai une apostrophe. J'ai par exemple des clients du type
"L'OUIVIN". Il me dit impossible d'ouvrir la base lorsqu'il passe sur cet
enregistrement. Si je le remplace par "L OUIVIN" dans ma base filtrée, ça
passe impeccable...


Ah les apostrophes dans les requêtes SQL !
Ça passe aussi en doublant l'apostrophe dans la base filtrée mais c'est
pas top car l'apostrophe restera doublée aussi pour le champ de fusion
obligeant un RR post-fusion pour remettre une seule apostrophe etc

Nous sommes néanmoins contents que vous y soyez arrivé. Bravo !

Faudra que je suggère un jour à Circé d'écrire un bouquin
rien que sur le publipostage Word ... :-)

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS

Avatar
Circé
Bonsoir ! :)

Faudra que je suggère un jour à Circé d'écrire un bouquin
rien que sur le publipostage Word ... :-)


D'accord si tu on le fait à deux !! ;)))

Circé

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS


Avatar
Ludovic
Désolé me revoilà....

J'ai un autre souci dans ma fusion, un souci de format. Dans mon tableau,
j'ai une date qui après la fusion apparaît au format US. J'ai tenté de
modifier le format dans Word mais je n'ai pas réussi (via @ "d MMMM yyyy")
par exemple. J'ai vu qu'il existait d'autres méthodes pour accéder à la
DATABASE (ODBC, OLE...) mais je n'y arrive pas non plus.

Pouvez-vous m'éclairer à nouveau?

Merci


"Circé" a écrit dans le message de news:

Bonsoir ! :)

Faudra que je suggère un jour à Circé d'écrire un bouquin
rien que sur le publipostage Word ... :-)


D'accord si tu on le fait à deux !! ;)))

Circé

Anacoluthe
« Le principal est de débuter. »
- Georges Charles HUYSMANS






Avatar
Anacoluthe
Bonjour !

'Ludovic' nous a écrit ...
Désolé me revoilà....


Y'a pas de quoi :-)

J'ai un autre souci dans ma fusion, un souci de format. Dans mon tableau,
j'ai une date qui après la fusion apparaît au format US. J'ai tenté de
modifier le format dans Word mais je n'ai pas réussi (via @ "d MMMM yyyy")
par exemple. J'ai vu qu'il existait d'autres méthodes pour accéder à la
DATABASE (ODBC, OLE...) mais je n'y arrive pas non plus.


Cocher
Outils / Options / Général / Confirmation des conversions lors de l'ouverture
Une boîte intermédiaire s'ouvrira à chaque demande de connexion à une base de
données : choisir alors la voie DDE

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU

1 2 3