Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2007, 12h09   #1
Invité régulier
 
Inscription : mai 2004
Messages : 42
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 42
Points : 6
Points : 6
Par défaut publipostage: If imbriqué (if or else)

Bonjour,

je suis en train de me battre pour faire des conditions dans un publipostage...

voici ce que je veux:

si la situation de la personne est Divorcé(e) ou Sépar(é) alors je fais un traitement sinon j'en fais un autre.

voici ce que j'ai fait

Code :
1
2
3
4
 
{IF {OR ({COMPARE {MERGEFIELD BICAL_SITULIB } = "Séparé(e)"}; 
{COMPARE {MERGEFIELD BICAL_SITULIB} = "Divorcé(e)"})}=1 
"Bonjour" "Au revoir"}
Ca me sort '=1' pour tous mes enregistrements.

Du coup j'ai enlevé dans mon code ce '=1', et maintenant ça me sort 'Bonjour' à chaque fois.

Alors comment dois-je m'y prendre exactement?

Merci par avance.
punky_brooster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 12h15   #2
Membre du Club
 
Avatar de medtun.net
 
Inscription : avril 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 57
Points : 48
Points : 48
Envoyer un message via MSN à medtun.net Envoyer un message via Skype™ à medtun.net
il te manque un point virgule
(condition ; valeur_si_vrai ; valeur_si_faux)
medtun.net est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 12h22   #3
Invité régulier
 
Inscription : mai 2004
Messages : 42
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 42
Points : 6
Points : 6
J'ai testé mais ça ne change rien. La doc de word n'indique pas de point virgule
punky_brooster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 17h50   #4
Membre Expert
 
Inscription : avril 2006
Messages : 1 318
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 318
Points : 1 591
Points : 1 591
bonjour,

il faut peut être imbriquer les IF pour chaque test :
Code :
1
2
 
{ IF {  MERGEFIELD  bical_situlib } = Séparé(e) Bonjour { IF {  MERGEFIELD  bical_situlib } = Divorcé(e) Bonjour "Au revoir"}}
s'il n'y a que 3 possibilité autant tester l'autre avec <> ca va plus vite !

Philippe
philben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 23h38   #5
Membre Expert
 
Inscription : avril 2006
Messages : 1 318
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 318
Points : 1 591
Points : 1 591
re bonjour,

voici 2 autres possibilités plus propres !

Code :
1
2
3
4
5
6
7
8
 
{ IF {=OR({ COMPARE { MERGEFIELD BICAL_SITULIB } = Séparé(e)};
          { COMPARE { MERGEFIELD BICAL_SITULIB } = Divorcé(e)}) 
     } = 1 Bonjour "Au revoir"}
 
{ IF {={ COMPARE { MERGEFIELD BICAL_SITULIB } = Séparé(e)} + 
       { COMPARE { MERGEFIELD BICAL_SITULIB } = Divorcé(e)} 
     } > 0 Bonjour "Au revoir"}
Philippe
philben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 09h22   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Pas de ";" dans un champ IF.


Ce que je te propose, ce ne sont pas des Compare Or mais des imbrications.

Malheureusement, L'odre des Vrai Faux est pas le bon pour être visuel.


Code :
{ IF { MERGEFIELD BICAL_SITULIB } = "Divorcé(e)" "Bonjour" { IF { MERGEFIELD BICAL_SITULIB } = "Séparé(e)" "Bonjour" "Au Revoir" } }
Le principe d'un Champ If
{ Test Vrai Faux} Si pour l'un ou les deux résultats, je refais un If, on obtient des IF imbriqués.

J'ai essayé ça fonctionne.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 09h32   #7
Membre Expert
 
Inscription : avril 2006
Messages : 1 318
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 318
Points : 1 591
Points : 1 591
ben alors...
Réponses à Heureux-oli qui récupère d'un noël bien arrosé

1) voir mon post de Hier 18h50, dis moi la différence avec ton code ?

2) c'est pas un <;> dans le IF mais dans OR(

3) mes 3 codes fonctionnent avec word 2003, faut tester seulement...

Philippe
philben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 10h36   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Citation:
Envoyé par medtun.net Voir le message
il te manque un point virgule
(condition ; valeur_si_vrai ; valeur_si_faux)
C'est un OR ??

Pour le reste OK, je n'avais vraiment vu que le Dernier, mais il te manque quelques ".

Je dois bien trouver une excuse lol.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 11h13   #9
Membre Expert
 
Inscription : avril 2006
Messages : 1 318
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 318
Points : 1 591
Points : 1 591
re,

il manquait juste une } finale dans mon post de 18h50 mais vous avez corrigé de vous-même ...

Pour ce qui est des <"> ils ne sont utiles que si un espace est dans le texte (comme pour "Au revoir") sinon ne servent à rien...

Avec OR() le séparateur des conditions semble être <;> et non <,>...

C'est plus propre avec la fonction Or() car on évite d'imbriquer des IF et de répéter "Bonjour" 2 fois...

A+

Philippe
philben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 11h16   #10
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Le ; ne t'était pas déstiné !
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2008, 10h53   #11
Invité régulier
 
Inscription : mai 2004
Messages : 42
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 42
Points : 6
Points : 6
Bonjour,

merci pour vos réponses.

Citation:
Envoyé par philben Voir le message
Code :
1
2
3
4
5
6
7
8
 
{ IF {=OR({ COMPARE { MERGEFIELD BICAL_SITULIB } = Séparé(e)};
          { COMPARE { MERGEFIELD BICAL_SITULIB } = Divorcé(e)}) 
     } = 1 Bonjour "Au revoir"}
 
{ IF {={ COMPARE { MERGEFIELD BICAL_SITULIB } = Séparé(e)} + 
       { COMPARE { MERGEFIELD BICAL_SITULIB } = Divorcé(e)} 
     } > 0 Bonjour "Au revoir"}
Avec la 1ere possibilité, ça me sort "Erreur ! Code op. conditionnel inconnu.Erreur ! Code op. conditionnel inconnu. "

Avec la 2eme possibilité, ça marche beaucoup mieux mais sur certains enregistrements ça me sort également "Erreur ! Code op. conditionnel inconnu.Erreur ! Code op. conditionnel inconnu. "...je ne comprends pas trop pourquoi


Je suis sous Word 2002, peut-être est-ce la raison d'un certain disfonctionnement?

Autre question: pour OR ou COMPARE faut-il faire quelquechose de précis pour taper ces fonctions (de la même manière qu'il faut faire Ctrl + F9 pour obtenir les {} ?)

Dans le cas présent, je vais partir sur la solution de Heureux-oli avec les IF imbriqués même si je dois écrire 2 fois Bonjour...
punky_brooster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2008, 18h01   #12
Membre Expert
 
Inscription : avril 2006
Messages : 1 318
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 318
Points : 1 591
Points : 1 591
bonjour,

Citation:
Dans le cas présent, je vais partir sur la solution de Heureux-oli avec les IF imbriqués même si je dois écrire 2 fois Bonjour...
Tout à fait raison, la fiabilité avant tout !

Bonne année,

Philippe
philben est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h02.


 
 
 
 
Partenaires

Hébergement Web