Compilation de MFC

Résolu/Fermé
evangelion13 Messages postés 5 Date d'inscription dimanche 21 décembre 2014 Statut Membre Dernière intervention 28 décembre 2014 - 28 déc. 2014 à 09:03
evangelion13 Messages postés 5 Date d'inscription dimanche 21 décembre 2014 Statut Membre Dernière intervention 28 décembre 2014 - 28 déc. 2014 à 17:42
Bonjour,

Aprés avoir résolu mon problème de tri, je me bute à des formules conditionnelle (désolé je ne connait pas le VBA) :p

$I2 = date d'adhésion
$L2 = date de renouvellement 2014
$P2 = date de renouvellement 2015

La formule 1 vérifie si la date de I2 et inférieure au 30/11/2013, si celui ci a payé son renouvellement 2014 et ci celui de 2015 et payé ou pas.
La formule 2 fait la même chose mais avec une comparaison supplémentaire.


donc ces 2 formule fonctionnent séparément (j'ai testé)
Formule 1

ET($I2<=DATE(2013;11;30);$L2<>"";$P2="";DATEDIF(DATE(ANNEE($L2);MOIS($I2);JOUR($I2));AUJOURDHUI();"d")>365)

Formule 2

ET($I2>DATE(2013;11;30);$I2<=DATE(2014;11;30);$P2="";DATEDIF(DATE(ANNEE($I2);MOIS($I2);JOUR($I2));AUJOURDHUI();"d")>365)

le problème et que quand je les compile ensemble sous cette forme cela ne marche plus, pourquoi????


OU(ET($I2>DATE(2013;11;30);$I2<=DATE(2014;11;30);$P2="";DATEDIF(DATE(ANNEE($I2);MOIS($I2);JOUR($I2));AUJOURDHUI();"d")>365);ET($I2<=DATE(2013;11;30);$L2<>"";$P2="";DATEDIF(DATE(ANNEE($L2);MOIS($I2);JOUR($I2));AUJOURDHUI();"d")>365))

j'ai essayé avec le ET intermédiaire puis sans cela me renvoie toujours une erreur sur la formule.

ce que j'essai de faire me semble logique pourtant
OU((formule1);(formule2))


merci de votre aide


3 réponses

via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 728
28 déc. 2014 à 14:58
Bonjour

Tes formules fonctionnent mais renvoient des résultats différents, ta compilation ne renvoie VRAI si une des 2 est vraie

ex I2=01/12/2013 L2=01/12/2014 P2=vide
Formule 1 renvoie FAUX Formule 2 renvoie VRAI donc compilation renvoie VRAI

Mais je ne comprends pas pourquoi tu utilises des formules si compliquées en utilisant datedif pour vérifier si les renouvellements ont été payés
en fait il y a 3 cas si je comprends bien sans voir ton fichier :

1) inscription en 2013 : date <30/11/13 en I puis si renouvellement pour 2014 date en L sinon rien, puis si renouvellement pour 2015 date en P sinon rien

2) inscription en 2014 : date <30/11/14 en I puis rien en L , puis si renouvellement pour 2015 date en P sinon rien

3) inscription pour 2015 : date <30/11/15 en I puis rien en L et rien en P

d'où pour mettre en couleur si à jour :
1ere MFC : ET($I2<DATE(2013;11;30);$L2<>"";$P2<>"") cocher interrompre si vrai
2eme MFC : ET($I2<DATE(2014;11;30);$P2<>"") cocher interrompre si vrai
3eme MFC : $I2<DATE(2015;11;30)

Si ça ne convient pas, post un exemple allégé (une dizaine de lignes suffisent) et anonymé de ton fichier sur cjoint.com et reviens ici indiquer le lien fourni en indiquant précisément quelles cellules tu souhaites voir colorer et selon quel critère

Cdlmnt

0
evangelion13 Messages postés 5 Date d'inscription dimanche 21 décembre 2014 Statut Membre Dernière intervention 28 décembre 2014
28 déc. 2014 à 15:38
merci pour ta reponse,

non en réalité le tableau n'a pas que 3 valeurs puisque je veut le programmer jusqu'a 2020 avec plus de 500 clients donc les cellules de date sont L,P,T,X,AB,AF....... etc

perso j'aurai bien fait sa sous access mais la personne ne le possède pas :(

les MFC doivent au final me faire:
- si date d'adhésion > de 395 jours, passage ligne en noir
- si date d'adhésion > de 365 jours, cellule en rouge
- si date d'adhésion > de 335 jours mais < à 365 passage en orange (avec la condition que le courrier de rappel n'ai pas ete envoyé)
- si date d'adhésion > de 335 jours mais < à 365 passage en orange rayé (avec la condition que le courrier de rappel soit envoyé).


en plus si tu regarde ma formule 1 tu remarquera qu'en réalité le programme récupère le mois et le jour de l'adhésion initiale et l'année du renouvellement de façon à ce qu'une personne qui par exemple arrive a terme en juillet et viens te regler fin aout ne gagne pas 2 mois gratuit et réciprocité

"avant je travaillais à Tchernobyl mais j'ai du faire une erreur de formule :p"
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 728
28 déc. 2014 à 16:07
Re

Sans voir le detail de ton fichier difficile de t'aider plus, mais vu le nombre d'années puisque tu veux aller jusqu'en 2020, personnellement j'opterai plutôt pour une colonne supplémentaire (masquée si nécessaire) avec une formule avec des SI et qui renvoie 1, 2, 3 ou 4 selon les cas puis je baserai mes MFC sur cette colonne, c'est plus facile à vérifier si les formules marchent et à les modifier que directement dans les MFC et si la formule contient une erreur Excel indique où dans la barre de formule

Bon courage

Cdlmnt
0
evangelion13 Messages postés 5 Date d'inscription dimanche 21 décembre 2014 Statut Membre Dernière intervention 28 décembre 2014
28 déc. 2014 à 17:42
merci à toi via, l'idée de la colonne cachée c'était tip top, j'en ai rajouté 2,
la première me récupère la dernière date de paiement sur la ligne en partant de 2020 jusqu'à aujourd'hui grâce à des fonctions SI imbriquées:

=SI(AB2<>"";CELLULE("contenu";AB2);SI(X2<>"";CELLULE("contenu";X2);....... etc

la deuxième me récupère la date d'envoi de la dernière lettre et 3 MFC font le boulot pour me faire changer la couleur de mes lignes.

Franchement j'ai cherché très loin ce que j'avais devant mon nez.


merci à toi et au forum.
0