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

insérer un champ (fonction)

10 réponses
Avatar
jpwitz
Bonjour

Dans un document publipostage, je voudrais insérer à un champ qui
effectue la fonction en suivante.

Si un champ {mergefield} contient un caractère (une, par exemple), il
écrit "oui", sinon il écrit "non".

Je pense qu'il faut utiliser la commande: insertion - champs - fonction
IF.... mais pour la suite de la syntaxe je ne sais pas.

J'utilise Microsoft Word 2002

Quelqu'un aurait-il une idée?

Merci

10 réponses

Avatar
Circé
Bonjour,

{IF {MERGEFIELD mon_champ} = 1 "oui" "non" }

Les { } s'obtiennent avec Ctrl+F9.

Sinon, pour ne pas le faire à la main :
Sur la barre d'outils "Fusion et publipostage", bouton "Insérer un mot
clé" => "Si... Alors... Sinon"
Et là y a plus qu'à compléter la boîte de dialogue.



jpwitz a utilisé son clavier pour écrire :
Bonjour

Dans un document publipostage, je voudrais insérer à un champ qui effectue la
fonction en suivante.

Si un champ {mergefield} contient un caractère (une, par exemple), il écrit
"oui", sinon il écrit "non".

Je pense qu'il faut utiliser la commande: insertion - champs - fonction
IF.... mais pour la suite de la syntaxe je ne sais pas.

J'utilise Microsoft Word 2002

Quelqu'un aurait-il une idée?

Merci
Avatar
jpwitz
Merci pour la syntaxe IF ...
Mais comment rechercher un caractère dans dans (MERGEFIELD mon_champ)
si MERGEFIELD mon_champ contient "," alors "oui" (ex: "1,2,3")
sinon "non" (ex: "123")

jpwitz

Circé a écrit :
Bonjour,

{IF {MERGEFIELD mon_champ} = 1 "oui" "non" }

Les { } s'obtiennent avec Ctrl+F9.

Sinon, pour ne pas le faire à la main :
Sur la barre d'outils "Fusion et publipostage", bouton "Insérer un mot
clé" => "Si... Alors... Sinon"
Et là y a plus qu'à compléter la boîte de dialogue.



jpwitz a utilisé son clavier pour écrire :
Bonjour



Dans un document publipostage, je voudrais insérer à un champ qui
effectue la fonction en suivante.



Si un champ {mergefield} contient un caractère (une, par exemple), il
écrit "oui", sinon il écrit "non".



Je pense qu'il faut utiliser la commande: insertion - champs -
fonction IF.... mais pour la suite de la syntaxe je ne sais pas.



J'utilise Microsoft Word 2002



Quelqu'un aurait-il une idée?



Merci




Avatar
Circé
Bonjour,

C'est juste pas possible avec Word...
Tu peux utiliser = ou <>, et aussi < et > même pour du texte.

Si > G, tu auras Geo et jpwitz mais pas Circé.

Circé
http://faqword.com

Il se trouve que jpwitz a formulé :
Merci pour la syntaxe IF ...
Mais comment rechercher un caractère dans dans (MERGEFIELD mon_champ)
si MERGEFIELD mon_champ contient "," alors "oui" (ex: "1,2,3")
sinon "non" (ex: "123")

jpwitz

Circé a écrit :
Bonjour,

{IF {MERGEFIELD mon_champ} = 1 "oui" "non" }

Les { } s'obtiennent avec Ctrl+F9.

Sinon, pour ne pas le faire à la main :
Sur la barre d'outils "Fusion et publipostage", bouton "Insérer un mot clé"
=> "Si... Alors... Sinon"
Et là y a plus qu'à compléter la boîte de dialogue.



jpwitz a utilisé son clavier pour écrire :
Bonjour



Dans un document publipostage, je voudrais insérer à un champ qui effectue
la fonction en suivante.



Si un champ {mergefield} contient un caractère (une, par exemple), il
écrit "oui", sinon il écrit "non".



Je pense qu'il faut utiliser la commande: insertion - champs - fonction
IF.... mais pour la suite de la syntaxe je ne sais pas.



J'utilise Microsoft Word 2002



Quelqu'un aurait-il une idée?



Merci




Avatar
Gloops
Bonjour,

Je dois avouer que j'ai été un peu surpris en lisant ça, il y a eu des
versions qui permettaient d'afficher le résultat d'une fonction
personnalisée dans un champ, ou est-ce que j'invente ?

En parcourant rapidement la liste des codes de champs, c'est vrai que je
ne vois rien de la sorte. ça suppose donc d'aller chercher dans les
événements du document, pour trouver celui qui se produit en fusionna nt
un enregistrement, et ce n'est pas non plus si immédiat à trouver.

En C# on a bien MailMergeBeforeRecordMerge (dont il reste à bien
vérifier qu'il est bien dans le propos), mais ceci n'est pas accessible
dans l'environnement de développement fourni avec Word 2007.

Donc, c'est bien ça, en Word 2007, même avec une fonction personnalis ée,
les moyens de chercher un caractère dans un champ pour afficher le
résultat dans un autre ne sont pas accessibles à l'utilisateur ?

____________________________________
Le 02/05/2010 10:05, Circé a écrit :
Bonjour,

C'est juste pas possible avec Word...
Tu peux utiliser = ou <>, et aussi < et > même pour du texte.

Si > G, tu auras Geo et jpwitz mais pas Circé.

Circé
http://faqword.com
Avatar
Geo
Bonjour Gloops

Je dois avouer que j'ai été un peu surpris en lisant ça, il y a eu des versions qui
permettaient d'afficher le résultat d'une fonction personnalisée dans un champ, ou
est-ce que j'invente ?



C'est vrai dans Excel, on le demande depuis des années pour Word, en
pure perte.

Les solutions de contournement sont très lourdes : par exemple
remplacer un signet par le résultat d'un calcul par macro, c'est la
macro qui doit savoir ou insérer le résultat.

--
A+
Avatar
Gloops
Le 02/05/2010 14:30, Geo a écrit :
Bonjour Gloops

Je dois avouer que j'ai été un peu surpris en lisant ça, il y a eu des
versions qui permettaient d'afficher le résultat d'une fonction
personnalisée dans un champ, ou est-ce que j'invente ?



C'est vrai dans Excel, on le demande depuis des années pour Word, en
pure perte.

Les solutions de contournement sont très lourdes : par exemple rempla cer
un signet par le résultat d'un calcul par macro, c'est la macro qui d oit
savoir ou insérer le résultat.




Oui, c'est un peu ça que je cherchais à explorer.
Mais en plus, il faut savoir quand la déclencher, la macro.
J'avais pensé à la déclencher à chaque enregistrement, mais si on n'y a
pas accès ...

Ah ou alors on fait la fusion d'abord, et on lance les modifs par macro
ensuite.
J'imagine qu'il faut mettre un point de repère en caractères cachés , et
aller chercher là-dedans. Parce qu'en plus, dans le résultat d'une
fusion, on ne peut pas se fier à un signet, vu qu'on en aurait besoin
dans chaque enregistrement. Ou alors une séquence mais je ne suis pas
bien sûr ...
Avatar
Lotre
Bonjour,


"Geo" tappota :
========================================== >> Je dois avouer que j'ai été un peu surpris en lisant ça, il y a eu
des versions qui permettaient d'afficher le résultat d'une fonction
personnalisée dans un champ, ou est-ce que j'invente ?



C'est vrai dans Excel, on le demande depuis des années pour Word, en
pure perte.

Les solutions de contournement sont très lourdes (...)


==========================================
Pour ma part j'ai renoncé à utilisé de telles fonctions
dans les code de champs
car c'est en général inadapté ...
Je passe par Excel :

Soit la base de données est déjà dans un xls(x),
soit il y a un xls qui se remplit avec la base de données.
Au final cela revient au même :
la fusion/publipostage utilise le xls(x), comme source.
et les champs supplémentaires issues de fonctions
éventuellement compliquées sont calculés par Excel.

Cela demande juste un petit travail de préparation
pour savoir ce que l'on désire réellement obtenir
dans le document Word...

HB.
Avatar
Gloops
Le 02/05/2010 15:09, Lotre a écrit :
======================== ===================

Pour ma part j'ai renoncé à utilisé de telles fonctions
dans les code de champs
car c'est en général inadapté ...
Je passe par Excel :

Soit la base de données est déjà dans un xls(x),
soit il y a un xls qui se remplit avec la base de données.
Au final cela revient au même :
la fusion/publipostage utilise le xls(x), comme source.
et les champs supplémentaires issues de fonctions
éventuellement compliquées sont calculés par Excel.

Cela demande juste un petit travail de préparation
pour savoir ce que l'on désire réellement obtenir
dans le document Word...

HB.



Ah, oui, ou alors en source d'adresses on donne le résultat d'une
requête SQL qui inclut les résultats des calculs (ou d'opérations s ur
chaînes de caractères), dans des colonnes séparées.
Avatar
Geo
Bonjour

Parce qu'en plus, dans le résultat d'une fusion, on ne peut pas se fier à un
signet, vu qu'on en aurait besoin dans chaque enregistrement.



Pour un publipostage, je le programme directement en vba :
un document source avec des signets,
Un document résultat.
Une boucle du genre :
Ouvrir le document source
Ajouter le texte à l'endroit des signets
Ajouter le document modifié en fin du document résultat.
Fermer le document source
Boucler (passer au destinataire suivant)

Avantage : on maîtrise complètement.
Inconvénient : on ne profite ais des automatismes.

La solution de Lotre est la plus raisonnable.

--
A+
Avatar
Gloops
Le 02/05/2010 18:42, Geo a écrit :
Bonjour

Parce qu'en plus, dans le résultat d'une fusion, on ne peut pas se
fier à un signet, vu qu'on en aurait besoin dans chaque enregistreme nt.



Pour un publipostage, je le programme directement en vba :



Ah, tu programmes tout toi-même, pour ainsi dire ?
Ah oui c'est aussi une façon de voir. J'ai déjà vu à l'occasion d e
questions posées des gens qui avaient l'intention de faire comme ça.

Avantage : on maîtrise complètement.
Inconvénient : on ne profite ais des automatismes.



Ben oui c'est un peu dommage.


La solution de Lotre est la plus raisonnable.




J'ai un peu tendance à le croire. J'y ai d'ailleurs proposé une varia nte.