Fonction si et ou

Résolu/Fermé
Titi32600 Messages postés 87 Date d'inscription samedi 5 décembre 2015 Statut Membre Dernière intervention 20 août 2017 - 8 août 2016 à 08:27
Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 - 8 août 2016 à 10:26
Salut à tous,

quelqu'un pourrait il me venir en aide, pour une erreur de fonction, que je n'arrive pas à voir correctement.

Dans ma feuille de suivi de mes heures de travail, j'inscris dans la cellule H23, les heures de ma journée (ex 07.00). si je suis en congé, ces 07.00 heure, sont inscrite manuellement dans ma cellule J23.

quand ma cellule J23 est renseignée, cela met automatique un "1" dans ma cellule AI23, si elle correspond à ma cellule D2, (qui est ma référence en heure de travail contractuelle), et qui indique que je doit soustraire 1 jour de mes congés payés.

Par le truchement d'une formule VBA, une date correspondant à un jour férié, à une couleur de fond en rouge, et le chiffre 1 s'inscrit dans la cellule se trouvant juste avant

Je souhaiterais, que ce jour férié, soit décompté, seulement si la date correspondante ne soir pas un jour férié.

j'ai essayé de faire cette formule, mais j'ai un petit problème d'exactitude.

=SI(OU(J23=$D$2/2);0.5;SI(OU(J23=$D$2);1;SI(OU(C23=1);0)))

Merci encore

TITI32600

2 réponses

Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 181
8 août 2016 à 08:44
Bonjour,

Il manque une "valeur si faux" à ton dernier SI(), si c'est un cas qui n'est pas censé se présenter, alors tu as un SI() en trop.
0
Titi32600 Messages postés 87 Date d'inscription samedi 5 décembre 2015 Statut Membre Dernière intervention 20 août 2017 2
8 août 2016 à 08:52
Salut Arkana0

Cela peut arrivé souvent, de prendre un jour de congés en plein millieu d'un jour férié, donc, d'inscrire "7.00" dans la cellule J23, alors que en même temps, C23 est egal à 1.
AI23, devra alors etre égale à 0

J'ai rectifié mon dernier "si faux", mais rien ne change dans ma cellule AI23, elle reste à 1
0
Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 181 > Titi32600 Messages postés 87 Date d'inscription samedi 5 décembre 2015 Statut Membre Dernière intervention 20 août 2017
Modifié par Arkana0 le 8/08/2016 à 09:20
En relisant je constate aussi un mauvais emploi du OU(), dans le sens où il est parfaitement inutile vu qu'il teste à chaque fois une seule condition, ce que fait déjà le SI()
ta formule marchera de la même manière sous cette forme :
=SI(J23=$D$2/2;0.5;SI(J23=$D$2;1;SI(C23=1;0;"erreur"))) 

Après tout n'est qu'une question d'ordre des conditions à respecter : la première sera appliquée et fin de la formule, sinon ce sera la deuxième, etc.

Là si ta formule renseigne un 1, c'est parce que D2 est égale à J23.
Ton problème vient peut-être du fait que tu veuilles comaprer D23 à J23 ?
0
Titi32600 Messages postés 87 Date d'inscription samedi 5 décembre 2015 Statut Membre Dernière intervention 20 août 2017 2
8 août 2016 à 09:28
Même problème

si C23=1, et que J23=7.00, alors AI23=1, alors qu'il me faudrait "0"

en fait, il faut que
AI23 soit égal à 1, si C23=0, et que J23=7.00
AI23=0.5, si C23=0 et si J23=3.5
AI23=0, si C23=1 et J23=7.00
0
Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 181
8 août 2016 à 10:26
Donc ce sont des conditions ET() qu'il faut utiliser, et non pas des OU().
=SI( ET( C23 = 0; J23 = $D$2 ) ; 1 ;SI ( ET( C23 = 0 ; J23 = $D$2/2 ; 0.5 ; SI( ET( C23 = 1 ; J23 = $D$2 ) ; 0 ;"erreur" ) ) ) 
0