Fonction si et ou

Résolu
Titi32600 Messages postés 87 Date d'inscription   Statut Membre Dernière intervention   -  
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   -
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
A voir également:

2 réponses

Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
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   Statut Membre Dernière intervention   2
 
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 6365 Date d'inscription   Statut Modérateur Dernière intervention   182 > Titi32600 Messages postés 87 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   2
 
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 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
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