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

Le
Wlad69
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Circé
Le #1587483
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.


Jac
Le #1587480
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é"
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.






Garette
Le #1587479
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.







Wlad69
Le #1588016
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 ?
Wlad69
Le #1588015
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.

Garette
Le #1587998
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 ?




Garette
Le #1587978
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.




Wlad69
Le #1589783
On 23 mar, 16:01, Garette
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

Publicité
Poster une réponse
Anonyme