Formule si complexe

Bonsoir,

Pourriez vous m'aider à trouver la bonne formule pour que ma colonne "k" indique directement soit "0", soit "IS", soit "IR", soit "IRU" selon les indications indiquées en dessous du tableau.

Merci de votre aide.

Anthony

Bonjour Thony0105

Alors la formule est effectivement complexe, mais il semblerait en plus, que quelques cas soit insolubles avec les éléments actuels de ton tableau ! Cf surlignés en jaune dans la figure :

image

Green SoftfS

Merci pour ta réponse. Pourrais tu m'aider au moins par rapport aux autres indications (sans tenir compte des indications en jaune).

Merci par avance.

Anthony

...

Oui pourquoi pas... Je plaisante, mais effectivement il y a de la complexité dans l'air !

En voyant ton tableau, j'avais pensé à une sorte de table de correspondance, mais il me semble qu'il existe trop de cas particuliers !

Afin de simplifier un peu les choses, est-ce qu'il est envisageable d'ajouter des colonnes (de calculs intermédiaires) ? Ces colonnes peuvent être masquées et/ou reléguées à droite du tableau ! Mais je crois que cette méthode permettrait de simplifier tes "conditions" assez compliquées !

Green SoftS,

Bien sûr il est tout à fait possible d'ajouter des colonnes de calculs intermédiaires. Je les masquerais par la suite.

Merci de ton aide

Anthony

Bonjour Thony0105

Parfait ! J'ai commencé à envisager une solution en décomposant par calculs intermédiaires... Je réitère il y a de beaucoup de cas à traiter, je me demande si il ne serait pas opportun de passer par une fonction VBA... ? Je reviens vers toi dès que je commence à voir une piste !

Bonjour,

Il y a tellement de cas qu'il est préférable, à mon avis, de passer par une fonction personnalisée(en VBA).

Cependant, il serait préférable dans un premier temps, et surtout pour que vous obteniez des réponses correctes en retour, que vous fournissiez déjà un tableau (ne vous arrêtez pas à 7 jours) rempli manuellement avec tous les cas de figures possibles, et agrémenté éventuellement de quelques commentaires sur la solution prise.

C'est un premier travail à fournir par vos soins, mais dans ce cas, il s'avère nécessaire pour une meilleure compréhension du problème posé.

Question: Ou apparaît dans le tableau, la notion de "non prévenu la veille avant 12h00" ?

Cdlt

Bonjour Thony0105, le fil

@Arturo83

J'en suis arrivé à cette déduction moi aussi !
La formulation est beaucoup trop complexe pour traiter l'ensemble des cas possibles...
Même avec des calculs intermédiaires comme je le suggérais un peu plus haut dans mes réflexions !

Quant à la notion "prévenir la veille" effectivement pour l'instant aucun moyen !

@Thony0105

Conclusion, j'abandonne l'idée d'une fonction SI imbriquée, beaucoup trop alambiquée !
Es-tu ok pour utiliser une fonction VBA ?

Quand je dis une fonction VBA, cela veut dire que nous avons du code VBA qui décrypte, décortique tous les cas possible pour les envoyer dans une fonction nommée (par exemple) CalculTypePause. Une fois dans ton tableau dans la colonne K, il suffit d'utiliser cette "nouvelle" fonction : =CalculTypePause()

PS/ Reste maintenant, si tu es d'accord, à écrire cette fonction... !
Cependant effectivement je suis d'avis comme le précise Arturo83 de te demander, d'étoffer un peu les différents cas possibles dans une PJ explicite !

@GreenSoftS, @Arturo83,

Merci pour votre aide.

Pour la notion "de prévenir ou non la veille avant 12h00" tu peux très bien ne pas l'inclure puisque c'est quasiment impossible pour l'employeur de prévoir avec autant d'avance notre heure de repas.

Concernant la fonction VBA, si tu trouve que c'est beaucoup plus simple pour toi, il n'y a aucun soucis pour moi.

Bon courage à vous.

Anthony

Bonjour GreensoftS et Arturo83,

Je vous joins le fichier mis à jour avec les différentes pauses repas. Comme vous pourrez le remarquer j'ai retiré les 2 primes repas avec prévenance ou non la vieille avant 12h, car comme je vous le disais, c'est quasiment impossible pour l'employeur de le prévoir. Vous pourrez remarquer aussi que maintenant ma colonnne K n'est plus celle des primes de repas, maintenant c'est la colonne O. Si cela vous dérange dans votre résolution de mon problème, pas de soucis je la décalerais plus loin.

Encore merci de votre aide.

Thony

Bonjour Thony0105

Je viens de regarder ta PJ. Je voudrais faire le point sur quelques éléments (cf figure) en tout cas ce que je suis capable de reformuler en terme de "conditions informatiquement parlant" :

image

J'ai marqué en couleur les hypothèses des différents cas et je tente d'expliquer pourquoi tu places cette valeur

  1. Pour cas 0 (vert)... la pause repas est prise à l'entreprise et dure 1 heure au moins ?
    Pour cas 0 (orange)... la prise de service est entre 11:00 et 14:30 ou 18:30 et 22:00 ?
  2. Pour cas IRU (jaune)... la pause repas est prise à l'entreprise et dure moins de 1 heure ?
    Pour cas IRU (bleu)... Travail de 4 heures mini et entre 22:00 et 07:00 ?
  3. Pour cas IR (facile)... Pause extérieur ?
  4. Pour cas IS (plus difficile)... Pause en entreprise ET 1 heure au moins ET ( (entre 11:00 et 14:30) OU (entre 18:30 et 22:00) ) ?

En somme est-ce que mes "soulignés/gras" sont corrects ?

GreensoftS,

oui c'est exactement ce que tu m'indiques.

Bon courage à toi

GreensoftS

en sachant que pour IRU "bleu" vu que c'est sur 2 lignes (puisque travail de nuit 20:00 - 0:00 et 0:00 8h le lendemain) il faudrait que la formule puisse le prendre en compte

...

OK ! Chouette ! Encore un autre cas que je n'avais pas ni vu, ni anticipé ! Sauf qu'en l'état actuel des indications sauf erreur de ma part, je ne vois pas comment m'en rendre compte... Je veux dire : comment savoir lors du traitement VBA ?

désolé de te rajouter une complication supplémentaire. Si tu n'arrives pas à trouver comment faire, dis le moi et on laissera tomber pour cette spécificité.

...

Pas de problème... Autant prévoir les cas envisageables dès le départ, cela évitera d'avoir à tout recommencer ensuite !

Pour l'instant j'avance... à petit pas mais j'avance ! (cf figure) Je sais traiter 0 vert et 0 orange, IR, IRU jaune... Reste donc IS et surtout IRU bleu

Une question me vient d'ailleurs, pour ce fameux cas supplémentaire IRU bleu ? Il ne serait pas possible de mettre ça sur une seule ligne "Prise Service = 20:00", "Fin Service" = 8:00, Excel ne sait pas gérer les heures négatives, mais avec VBA on peut palier... Ce serait plus simple à calculer en tout cas et il me semble plus facile en lecture. Non ?

GreensoftS,

Oui c'est totalement, mais après cela me pose un soucis pour ma colonne "Total Travail Amplitude". Si tu arrives à trouver une solution, cela ne me pose aucun soucis

...

Quel problème ? Tu veux dire pour calculer sur le fait que les heures sons inversées... Je veux dire "fin < début", si c'est le cas, cela ne pose pas de problème ! Le calcul de l'amplitude peut être effectué quand même et correctement ! Maintenant si c'est parce que tu veux avoir effectivement 2 lignes pour calculer l'amplitude (au vrai) jour par jour, c''est plus compliqué...

Je vais tenter de voir si je peux lire la ligne suivante pour ce cas particulier IRU bleu... Est-ce que si je dis :

SI Fin de Service(ligne actuelle)= 00:00 ALORS

  • Ignorer Fin de Service(ligne actuelle)
  • Lire Fin de Service(ligne suivante)
  • Ne rien indiquer dans type pause repas de ligne suivante

FIN SI (Fin de Service(ligne actuelle)= 00:00)

"sous-entendu que ligne suivante est celle du lendemain pour prendre en compte la "vraie" fin de service"

est-ce correct ?

oui moi j'ai mis comme formule "fin" - "début", donc pour l'instant cela me mets une erreur si je mets 08:00.

et oui c'est exactement ce que tu expliques dans ton explication de SI

@GreensoftS, oui c'est exactement ce que tu expliques dans ta formule SI. Bon courage Thony
Rechercher des sujets similaires à "formule complexe"