Besoin d'aide pour des if imbriqué
Fermé
jose7896
Messages postés
4
Date d'inscription
vendredi 23 décembre 2016
Statut
Membre
Dernière intervention
23 décembre 2016
-
23 déc. 2016 à 10:40
jose7896 Messages postés 4 Date d'inscription vendredi 23 décembre 2016 Statut Membre Dernière intervention 23 décembre 2016 - 23 déc. 2016 à 14:02
jose7896 Messages postés 4 Date d'inscription vendredi 23 décembre 2016 Statut Membre Dernière intervention 23 décembre 2016 - 23 déc. 2016 à 14:02
A voir également:
- Besoin d'aide pour des if imbriqué
- If exist - Forum Programmation
- Si et ou imbriqué - Guide
- Date if en francais excel - Forum Programmation
- Bios has been reset please reconfigure a bios setup items if needed - Forum BIOS
- {Batch} IF NOT EXIST <mon folder> ne fonctionne pas ✓ - Forum Autoit / batch
4 réponses
luckydu43
Messages postés
3985
Date d'inscription
vendredi 9 janvier 2015
Statut
Membre
Dernière intervention
23 décembre 2024
982
Modifié par luckydu43 le 23/12/2016 à 10:59
Modifié par luckydu43 le 23/12/2016 à 10:59
Bonjour
Dejà, éclaircir le code permet d'un coup d'un seul d'y voir plus clair.
Là, on frôle l'obfuscation ^^
J'y regarde et je te dis si je trouve quelque facteur commun pour réduire le tout.
N'hésite pas à prévenir si tu te rends compte que la condition booléenne que tu nous as livrée est erronée, puisqu'on se base dessus pour te répondre ^^
Les 3 plus grands mensonges du dev :
1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...
Dejà, éclaircir le code permet d'un coup d'un seul d'y voir plus clair.
Là, on frôle l'obfuscation ^^
IF( [@Etat]="Planifié"; IF( [@[K ZZR Last Assigned Date]]=""; IF( [@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok" ); IF( [@[K ZZR Last Assigned Date]]<(TODAY()-8); "défaut"; "ok" ); IF( [@[K ZZR Last Assigned Date]]<( [@[K O Appointment Date]]; IF( [@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok" ); IF( [@[K ZZR Last Assigned Date]]<( [@[K O Appointment Date]]; IF( [@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok" ) ) ) ) ) ); "ok"; )
J'y regarde et je te dis si je trouve quelque facteur commun pour réduire le tout.
N'hésite pas à prévenir si tu te rends compte que la condition booléenne que tu nous as livrée est erronée, puisqu'on se base dessus pour te répondre ^^
Les 3 plus grands mensonges du dev :
1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...
jose7896
Messages postés
4
Date d'inscription
vendredi 23 décembre 2016
Statut
Membre
Dernière intervention
23 décembre 2016
23 déc. 2016 à 11:06
23 déc. 2016 à 11:06
Merci de votre réponse. en effet bonne idée d'éclaircir le code. la condition est bonne. c'est vraiment la syntaxe qui me pose probleme.
luckydu43
Messages postés
3985
Date d'inscription
vendredi 9 janvier 2015
Statut
Membre
Dernière intervention
23 décembre 2024
982
Modifié par luckydu43 le 23/12/2016 à 11:42
Modifié par luckydu43 le 23/12/2016 à 11:42
Alors en fait j'ai du mal à comprendre ce que vous avez fait.
J'essaie des choses, mais visiblement ça ne va toujours pas.
La deuxième condition IF (ligne 3) ne marchera pas puisqu'elle a 4 paramètres (dont 3 sont des conditions if imbriquées).
Il ne lui en faut que 3 maxi. Et ce "léger détail" est présent dès le départ....
Essayez de commenter votre code. De dire ce que vous comptez faire.
Là... j'ai juste identifié du code en doublon, c'est tout ^^
J'essaie des choses, mais visiblement ça ne va toujours pas.
IF( [@Etat]="Planifié"; IF( [@[K ZZR Last Assigned Date]]=""; IF( [@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok" ); IF( [@[K ZZR Last Assigned Date]]<(TODAY()-8); "défaut"; "ok" ); IF( (([@[K ZZR Last Assigned Date]] < [@[K O Appointment Date]]) AND [@[K O Appointment Date]]<(TODAY()-8)); "défaut"; "ok" ); ); "ok"; )
La deuxième condition IF (ligne 3) ne marchera pas puisqu'elle a 4 paramètres (dont 3 sont des conditions if imbriquées).
Il ne lui en faut que 3 maxi. Et ce "léger détail" est présent dès le départ....
Essayez de commenter votre code. De dire ce que vous comptez faire.
Là... j'ai juste identifié du code en doublon, c'est tout ^^
jose7896
Messages postés
4
Date d'inscription
vendredi 23 décembre 2016
Statut
Membre
Dernière intervention
23 décembre 2016
23 déc. 2016 à 11:50
23 déc. 2016 à 11:50
IF(
[@Etat]="Planifié"; // si état = planifié
IF(
[@[K ZZR Last Assigned Date]]=""; // si last assigned date est vide
IF(
[@[K O Appointment Date]]<(TODAY()-8); // si ko apointemnt date est inferieur à today - 8
"défaut"; // afficher defaut
"ok" // sinon afficher ok
);
IF(
[@[K ZZR Last Assigned Date]]<(TODAY()-8);
"défaut";
"ok"
);
IF(
(([@[K ZZR Last Assigned Date]] < [@[K O Appointment Date]]) // si last assigned date est inferieur à appointement date
AND [@[K O Appointment Date]]<(TODAY()-8));
"défaut";
"ok"
);
);
"ok";
)
[@Etat]="Planifié"; // si état = planifié
IF(
[@[K ZZR Last Assigned Date]]=""; // si last assigned date est vide
IF(
[@[K O Appointment Date]]<(TODAY()-8); // si ko apointemnt date est inferieur à today - 8
"défaut"; // afficher defaut
"ok" // sinon afficher ok
);
IF(
[@[K ZZR Last Assigned Date]]<(TODAY()-8);
"défaut";
"ok"
);
IF(
(([@[K ZZR Last Assigned Date]] < [@[K O Appointment Date]]) // si last assigned date est inferieur à appointement date
AND [@[K O Appointment Date]]<(TODAY()-8));
"défaut";
"ok"
);
);
"ok";
)
luckydu43
Messages postés
3985
Date d'inscription
vendredi 9 janvier 2015
Statut
Membre
Dernière intervention
23 décembre 2024
982
Modifié par luckydu43 le 23/12/2016 à 13:46
Modifié par luckydu43 le 23/12/2016 à 13:46
Ok.
Alors essayez ça :
J'ai un peu édité mon post après l'avoir posté... n'hésitez pas à rafraîchir la page
Alors essayez ça :
IF( [@Etat]="Planifié"; // si état = planifié // si last assigned date est vide IF( [@[K ZZR Last Assigned Date]]=""; // si ko apointemnt date est inferieur à today - 8 IF( [@[K O Appointment Date]]<(TODAY()-8); IF( [@[K ZZR Last Assigned Date]]<(TODAY()-8); // si last assigned date < à appointement date IF( ( ([@[K ZZR Last Assigned Date]] < [@[K O Appointment Date]] ) AND [@[K O Appointment Date]]<(TODAY()-8)); "défaut"; "ok" ); // Faudrait peut-être mettre un "ok"; ici, à voir avec // les tests unitaires... ); "ok" ); "ok" // sinon afficher ok ); "ok"; )
J'ai un peu édité mon post après l'avoir posté... n'hésitez pas à rafraîchir la page
jose7896
Messages postés
4
Date d'inscription
vendredi 23 décembre 2016
Statut
Membre
Dernière intervention
23 décembre 2016
23 déc. 2016 à 14:02
23 déc. 2016 à 14:02
jai essayé ça ne marche toujours pas. je vais essayé de m'inspirer de ce vous avez fait pour avancer.