Bonjour!
J'ai une application à mettre à jour pour mon boulot et ça fait deux jours que je me prend la tête dessus, j'espère que quelqu'un pourra m'aider.
Le but de l'application est de comparer le délai mis par notre service par rapport à un cahier des charges.
délai à respecter en jours ouvrés (colonne D):
5 jours pour le cas 1 (X) (test de comparaison avec la cellule $C$463 pour détecter ce cas)
21 jours pour le cas 2 (Z) (test de comparaison avec la cellule $C$464 pour détecter ce cas)
En entrée on a une date de demande officiel (colonne E), une date de demande fournisseur (colonne M) et une date de réalisation (colonne H).
condition 1 : si la demande du fournisseur (M) est inférieur à " la date officiel + le délai " on se base sur " la date officiel + le délai ", donc si la date de réalisation est inférieur à " la date officiel + le délai " c'est OK sinon ce n'est pas bon
condition 2 : si la demande du fournisseur (M) est supérieur à " la date officiel + le délai " on se base sur la demande du fournisseur, donc si la date de réalisation est inférieur à la date du fournisseur c'est OK sinon ce n'est pas bon
Dans la (colonne K) je calcul le délai en jours ouvrés :
=SI(C4=$C$472;SI(ET(H4<>"";M4<>"");SI(ESTNUM(M4);ABS(NB.JOURS.OUVRES(H4;M4;'Jours Férié'!$A$2:$A$22))-1;"");"");SI(OU(C4=$C$463;C4=$C$464);SI(ET(H4<>"";E4<>"");SI(ESTNUM(M4);ABS(NB.JOURS.OUVRES(E4;H4;'Jours Férié'!$A$2:$A$22))-1;"");"");SI(ET(J4<>"";E4<>"");NB.JOURS.OUVRES(E4;J4;'Jours Férié'!$A$2:$A$14)-1;"")))
Ce calcul marche parfaitement pour la condition 1.
J'ai également la colonne L qui compare le délai de la colonne K par rapport au cahier des charges colonne D.
J'utilise donc cette colonne pour tester la condition 2 :
=SI(K4<>"";SI(OU(C4=$C$463;C4=$C$464);SI((NB.JOURS.OUVRES(M4;E4+D4;'Jours Férié'!$A$2:$A$22)-1)<0;SI(H4>M4;"N";"O");SI(K4>D4;"N";"O"));SI(ET(C4<>$C$463;C4<>$C$464;K4>D4);"N";"O"));"")
Comme vous pouvez le voir, pour mes deux conditions je fais la différence entre " la date officiel + le délai " et la date du fournisseur, si elle est inférieur à zéro cela signifie que la date du fournisseur est supérieur à la " la date officiel + le délai " (condition 2) et à ce moment si c'est vrai je compare la date de réalisation avec la demande du fournisseur.
Problème :
Dans la formule ci-dessus, lors du calcul du nombre de jours ouvrés j'ajoute le délai à respecter en jours ouvrés à la date officel (E4+D4), et de ce fait la date obtenu ne correpond pas au calendrier des jours ouvrés.
Comment résoudre ce problème sans passer par l'utilisation d'une boucle sous VBA?
Merci d'avance
J'ai une application à mettre à jour pour mon boulot et ça fait deux jours que je me prend la tête dessus, j'espère que quelqu'un pourra m'aider.
Le but de l'application est de comparer le délai mis par notre service par rapport à un cahier des charges.
délai à respecter en jours ouvrés (colonne D):
5 jours pour le cas 1 (X) (test de comparaison avec la cellule $C$463 pour détecter ce cas)
21 jours pour le cas 2 (Z) (test de comparaison avec la cellule $C$464 pour détecter ce cas)
En entrée on a une date de demande officiel (colonne E), une date de demande fournisseur (colonne M) et une date de réalisation (colonne H).
condition 1 : si la demande du fournisseur (M) est inférieur à " la date officiel + le délai " on se base sur " la date officiel + le délai ", donc si la date de réalisation est inférieur à " la date officiel + le délai " c'est OK sinon ce n'est pas bon
condition 2 : si la demande du fournisseur (M) est supérieur à " la date officiel + le délai " on se base sur la demande du fournisseur, donc si la date de réalisation est inférieur à la date du fournisseur c'est OK sinon ce n'est pas bon
Dans la (colonne K) je calcul le délai en jours ouvrés :
=SI(C4=$C$472;SI(ET(H4<>"";M4<>"");SI(ESTNUM(M4);ABS(NB.JOURS.OUVRES(H4;M4;'Jours Férié'!$A$2:$A$22))-1;"");"");SI(OU(C4=$C$463;C4=$C$464);SI(ET(H4<>"";E4<>"");SI(ESTNUM(M4);ABS(NB.JOURS.OUVRES(E4;H4;'Jours Férié'!$A$2:$A$22))-1;"");"");SI(ET(J4<>"";E4<>"");NB.JOURS.OUVRES(E4;J4;'Jours Férié'!$A$2:$A$14)-1;"")))
Ce calcul marche parfaitement pour la condition 1.
J'ai également la colonne L qui compare le délai de la colonne K par rapport au cahier des charges colonne D.
J'utilise donc cette colonne pour tester la condition 2 :
=SI(K4<>"";SI(OU(C4=$C$463;C4=$C$464);SI((NB.JOURS.OUVRES(M4;E4+D4;'Jours Férié'!$A$2:$A$22)-1)<0;SI(H4>M4;"N";"O");SI(K4>D4;"N";"O"));SI(ET(C4<>$C$463;C4<>$C$464;K4>D4);"N";"O"));"")
Comme vous pouvez le voir, pour mes deux conditions je fais la différence entre " la date officiel + le délai " et la date du fournisseur, si elle est inférieur à zéro cela signifie que la date du fournisseur est supérieur à la " la date officiel + le délai " (condition 2) et à ce moment si c'est vrai je compare la date de réalisation avec la demande du fournisseur.
Problème :
Dans la formule ci-dessus, lors du calcul du nombre de jours ouvrés j'ajoute le délai à respecter en jours ouvrés à la date officel (E4+D4), et de ce fait la date obtenu ne correpond pas au calendrier des jours ouvrés.
Comment résoudre ce problème sans passer par l'utilisation d'une boucle sous VBA?
Merci d'avance