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

Comment extraire le 1er caractère d'un champ de fusion ?

8 réponses
Avatar
Wlad69
Bonjour,

J'ai un champ de fusion qui peut prendre une centaine de valeurs
diff=E9rentes. Le libell=E9 qu'il contient, fait entre 30 et 50
caract=E8res, et commence :
- soit par une voyelle ou un h, et dans ce cas je voudrais le faire
pr=E9c=E9der d'un "d'"
- soit d'une autre lettre, et dans ce cas je voudrais le faire
pr=E9c=E9der d'un "de".

Je voudrais faire un champ avec une formule du genre
{IF LEFT({MERGEFIELD Libelle},1) =3D "[a,e,i,o,u,y,h]" "d'" "de"}
Mais je ne sais pas si c'est possible (si Left existe) et je ne
trouve pas la syntaxe exacte.

Merci de votre aide.

Cordialement,

Wlad69.

8 réponses

Avatar
Circé
Bonjour Wlad69,

Ahhh oui ! On aimerait bien pouvoir inventer des champs !!
malheureusement, le "left" n'existe pas dans Word (pas plus que le
"right" d'ailleurs si ça peut rassurer certains ;))

Circé
http://faqword.free.fr

Wlad69 vient de nous annoncer :
Bonjour,

J'ai un champ de fusion qui peut prendre une centaine de valeurs
différentes. Le libellé qu'il contient, fait entre 30 et 50
caractères, et commence :
- soit par une voyelle ou un h, et dans ce cas je voudrais le faire
précéder d'un "d'"
- soit d'une autre lettre, et dans ce cas je voudrais le faire
précéder d'un "de".

Je voudrais faire un champ avec une formule du genre
{IF LEFT({MERGEFIELD Libelle},1) = "[a,e,i,o,u,y,h]" "d'" "de"}
Mais je ne sais pas si c'est possible (si Left existe) et je ne
trouve pas la syntaxe exacte.

Merci de votre aide.

Cordialement,

Wlad69.


Avatar
Jac
Ni à gauche, ni à droite... on va voter qui, nous ???

Donc si tu ne peux pas le faire dans Word, fais-le dans Excel...
Si tes variables sont dans XL pas de souci.
Si elles viennent d'un txt ou autre format, tu fais un import dans XL avant
de manipuler les données puis tu pointes sur XL avec Word pour ta fusion ou
tu écrases tes données d'origine par la même chose en faisant un "Enregistré
sous..." depuis XL.

Jac

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

Bonjour Wlad69,

Ahhh oui ! On aimerait bien pouvoir inventer des champs !!
malheureusement, le "left" n'existe pas dans Word (pas plus que le "right"
d'ailleurs si ça peut rassurer certains ;))

Circé
http://faqword.free.fr

Wlad69 vient de nous annoncer :
Bonjour,

J'ai un champ de fusion qui peut prendre une centaine de valeurs
différentes. Le libellé qu'il contient, fait entre 30 et 50
caractères, et commence :
- soit par une voyelle ou un h, et dans ce cas je voudrais le faire
précéder d'un "d'"
- soit d'une autre lettre, et dans ce cas je voudrais le faire
précéder d'un "de".

Je voudrais faire un champ avec une formule du genre
{IF LEFT({MERGEFIELD Libelle},1) = "[a,e,i,o,u,y,h]" "d'" "de"}
Mais je ne sais pas si c'est possible (si Left existe) et je ne
trouve pas la syntaxe exacte.

Merci de votre aide.

Cordialement,

Wlad69.






Avatar
Garette
Bonjour,

Je ne connais pas tres bien les Champs sous Word, mais j'arrive un résultat
avec :
{ IF { COMPARE { AUTHOR } = "é*"or"è*"or"a*" } = 1 "L' { AUTHOR }" { AUTHOR }}

Je l'ai fait sur le champ { AUTHOR } car je n'ai pas su en manipiler un autre.
J'imagine qu'en final, ca devrait donner un truc du genre :
{ IF { COMPARE {MERGEFIELD Libelle} = "é*"or"è*"or"a*" } = 1 "L' {MERGEFIELD
Libelle}" {MERGEFIELD Libelle}}

il faut rajouter les autres voyelles et les "h" etc ...



Bonjour Wlad69,

Ahhh oui ! On aimerait bien pouvoir inventer des champs !!
malheureusement, le "left" n'existe pas dans Word (pas plus que le
"right" d'ailleurs si ça peut rassurer certains ;))

Circé
http://faqword.free.fr

Wlad69 vient de nous annoncer :
Bonjour,

J'ai un champ de fusion qui peut prendre une centaine de valeurs
différentes. Le libellé qu'il contient, fait entre 30 et 50
caractères, et commence :
- soit par une voyelle ou un h, et dans ce cas je voudrais le faire
précéder d'un "d'"
- soit d'une autre lettre, et dans ce cas je voudrais le faire
précéder d'un "de".

Je voudrais faire un champ avec une formule du genre
{IF LEFT({MERGEFIELD Libelle},1) = "[a,e,i,o,u,y,h]" "d'" "de"}
Mais je ne sais pas si c'est possible (si Left existe) et je ne
trouve pas la syntaxe exacte.

Merci de votre aide.

Cordialement,

Wlad69.







Avatar
Wlad69
Merci beaucoup.
C'est la solution.

çà fonctionne ... presque.

Il reste un petit problème avec les OR qui ne sont pas bien traités.
J'ai fait
{IF {COMPARE {MERGEFIELD Libellé} = "a*" or "e*" or "i*" or "u*" }=1
"d'" "de"}
et çà ne fonctionne qu'avec les "a".

Je pense que çà devrait fonctionne en faisant quelquechose comme
{IF {=OR({COMPARE {MERGEFIELD Libellé} = "a*" ,OR({COMPARE {MERGEFIELD
Libellé} = "e*" ,{COMPARE {MERGEFIELD Libellé} = "i*")) }=1 "d'" "de"}
mais je trouve que c'est.... môche et peu lisible.

Je suis sur qu'il doit y avoir une syntaxe pour remplacer la chaine
"a*" or "e* or "i*" or etc....
par un truc du genre
"[a,e,i]*"

Qu'en pensez-vous ?
Avatar
Wlad69
Donc si tu ne peux pas le faire dans Word, fais-le dans Excel...
Si tes variables sont dans XL pas de souci.
Si elles viennent d'un txt ou autre format, tu fais un import dans XL ava nt
de manipuler les données puis tu pointes sur XL avec Word pour ta fusio n ou
tu écrases tes données d'origine par la même chose en faisant un "E nregistré
sous..." depuis XL.

Jac

Je ne peux pas utiliser Excel dans le cadre de cette fusion.

Merci d'avoir pris la peine de me proposer une solution.

Wlad69.

Avatar
Garette
Bonsoir,

J'ai trouvé.
Il faut imbriquer les OU (qui d'ailleurs sont des OR).
A priori, OR n'a que 2 arguments :-(
Ca donne OR(test1 ; OR(test2 ; test3))

Bref, ici http://cjoint.com/?dww3mEsFCn un exemple de fusion qui teste 3
lettres.
Bon courage pour l'imbrication des autres OR ;-)

Au passage, si qqun sait comment copier coller les champs en mode affichage
Code de champ. Je n'y arrive pas il ne me colle que le résultat.



Merci beaucoup.
C'est la solution.

çà fonctionne ... presque.

Il reste un petit problème avec les OR qui ne sont pas bien traités.
J'ai fait
{IF {COMPARE {MERGEFIELD Libellé} = "a*" or "e*" or "i*" or "u*" }=1
"d'" "de"}
et çà ne fonctionne qu'avec les "a".

Je pense que çà devrait fonctionne en faisant quelquechose comme
{IF {=OR({COMPARE {MERGEFIELD Libellé} = "a*" ,OR({COMPARE {MERGEFIELD
Libellé} = "e*" ,{COMPARE {MERGEFIELD Libellé} = "i*")) }=1 "d'" "de"}
mais je trouve que c'est.... môche et peu lisible.

Je suis sur qu'il doit y avoir une syntaxe pour remplacer la chaine
"a*" or "e* or "i*" or etc....
par un truc du genre
"[a,e,i]*"

Qu'en pensez-vous ?




Avatar
Garette
Bonjour,

Voici une solution avec Word et Excel.
Excel traite les articles et Word fait la fusion.

http://cjoint.com/?dxoX4mOTtO



Bonjour,

J'ai un champ de fusion qui peut prendre une centaine de valeurs
différentes. Le libellé qu'il contient, fait entre 30 et 50
caractères, et commence :
- soit par une voyelle ou un h, et dans ce cas je voudrais le faire
précéder d'un "d'"
- soit d'une autre lettre, et dans ce cas je voudrais le faire
précéder d'un "de".

Je voudrais faire un champ avec une formule du genre
{IF LEFT({MERGEFIELD Libelle},1) = "[a,e,i,o,u,y,h]" "d'" "de"}
Mais je ne sais pas si c'est possible (si Left existe) et je ne
trouve pas la syntaxe exacte.

Merci de votre aide.

Cordialement,

Wlad69.




Avatar
Wlad69
On 23 mar, 16:01, Garette wrote:
Bonjour,

Voici une solution avec Word et Excel.
Excel traite les articles et Word fait la fusion.

http://cjoint.com/?dxoX4mOTtO




Merci beaucoup pour ton aide.

J'ai me suis finalement résolu à utiliser l'imbrication de OR. çà
fonctionne bien.
Dans le contexte dans lequel je suis, il n'était pas envisageable de
passer par Excel.

Merci encore,

Cordialement,

Wlad69