MFC

Bonjour à tous,

Je me prénomme Mickaêl et je permets de venir vers vous car j'ai je plafonne sur un fichier XLS.

J'ai crée un planning avec un certain nombres de données.

Lorsque je réalise une MFC sur une plage suivant 4 colonnes, mes cases se colorient comme je le souhaite !!!

Pour améliorer les choses, j'ai crée 4 autre colonnes avec le même type de données et je souhaite réaliser une MFC sur cette même plage en changeant simplement la couleur de mes cases....

Je vous joins le fichier XLS, et je pense que vous allez rapidement comprendre la problématique.

La formule fonctionne pour les colonnes IJKL --> Grand plage

La formule fonctionne pour les colonnes EFGH -> Petite plage tout en bas du tableau

Je pense qu'il faut réaliser un mix des deux formules. Une idée que j'ai essayée OU=(SI ; SI) ????

Je vous laisse jeter un œil ou deux

Merci de votre retour.

Cordialement

Emilmick

18test.xlsx (259.45 Ko)

Aucune MFC sur les 8 colonnes indiquées.

Bjr Mr

Sans doute est-ce l'erreur ?

Aucune MFC ne fait référence aux colonnes E à L !

J'ai simplifié le fichier test et réaliser une formule (plage T6:AH6) qui semble cafouiller un peu.... Je pense ne pas être loin de la solution.

Sur la Ligne 6

13test.xlsx (45.87 Ko)

Tes MFC font référence aux colonnes M à R dans les formules (et non E à L).

Quand tu exprimeras de façon intelligible ce que tu veux, on avisera. Pour l'instant, j'abandonne tout décodage...

Nous n'avons pas les mêmes compétences.... j'en suis désolé.

Merci de votre aide quand même

Cdtl

Y'a t'il une âme charitable pour vérifier ma formule en T6 ?

Il s'agit de la combinaison des formules en U4 et en U8 qui fonctionnent indépendamment correctement.

Svp, merci

Cdlt

Je pense que ma formule fonctionne mais il y'a conflit.....

6test.xlsx (32.28 Ko)

Bonjour, pour ma part je ne comprends rien à votre fichier, votre formule ni ce que vous voulez.

Par contre vos formules font références à des cellules vides ? Est-ce normal ?

sans titre

Bonjour,

Le sujet de départ, était une MFC, c'est d'ailleurs le titre.

Aucune présence de formule conditionnelle faisant référence aux plages que tu indiquais...

Et impossible de déduire ce que tu veux précisément faire.

Maintenant le sujet a changé ! Il devient rectifier une formule en T6 (en fait T4 [qui est la cellule supérieure gauche de la plage où officie la formule]). On ne voit pas au premier coup d'oeil ce qu'est censée calculer cette formule...

Si tu parviens à indiquer clairement ce que tu veux réaliser et quels sont les calculs à faire, je repasserai voir. Pour l'instant, on ne peut que passer du temps à tenter de savoir quel est le problème à résoudre... Cela peut attendre.

Cordialement

Re,

En effet mon explication n'est sans doute pas clair et je m'en excuse.

Je suis tellement dans mon fichier que cela me parait vraiment clair. J'ai avancé un peu sur le sujet avec de l'aide mais il y a encore quelque-chose qui ne va pas.

Alors, je vous explique

Ligne 4 TOTO à partir du 01/01/2015 est en Repos Hebdo tous les 3 jours durant 24h00

Ligne 5 TATA à partir du 01/01/2015 est en repos Hebdo tous les 6 jours durant 48h00

Ligne 6 TUTU à partir du 02/12/2015 est en repos Hebdo tous les 7 jours durant 48h00 MAIS TUTU à partir du 10/12/2015 est aussi en CP tous les 10 jours durant 24h00.... Il travaille pas beaucoup lol !!!!!

Pourquoi TUTU le 15/12/2015 et 16/12/2015 et le reste de l'année.... n'est plus en Repos Hebdo ???

J’espère que cela est un peu plus compréhensible. Je vous joins le fichier

Merci

4tatatutu.xlsx (44.47 Ko)

Bonsoir,

Je dois être un peu fatigué car je n'ai pas arrêté d'inverser des + et des -, des > et des <...

Voilà un formule qui concatène (s'il y a lieu les RH et CP :

=SI(ET($E4>0;$E4<=T$3);SI(MIN(MOD(T$3-$E4-LIGNE(INDIRECT("1:"&$H4/24))+1;$F4))=0;$G4;"");"")&SI(ET($I4>0;$I4<=T3);SI(MIN(MOD(T$3-$I4-LIGNE(INDIRECT("1:"&$L4/24))+1;$J4))=0;$K4;"");"")

Cordialement

Bonjour,

Merci pour d'avoir pris le temps de vous pencher sur le sujet.

Un grand merci pour la formule !!!

J'ai modifié mon fichier et au fur à mesure de l'avancement, je me suis dit:

Il y a des Repos Hebdos, des CP et aussi des Repos de Nuit...... Donc j'ai rajouté une dernière colonne MNOP

Lorsque je renseigne mon tableau en ayant modifié la formule, il y a une petite erreur à l'affichage. AC ; AJ, AQ.... devrait être colorées

=SI(ET($E4>0;$E4<=X$3);SI(MIN(MOD(X$3-$E4-LIGNE(INDIRECT("1:"&$H4/24))+1;$F4))=0;$G4;"");"")&SI(ET($I4>0;$I4<=X3);SI(MIN(MOD(X$3-$I4-LIGNE(INDIRECT("1:"&$L4/24))+1;$J4))=0;$K4;"");"")&SI(ET($M4>0;$M4<=X3);SI(MIN(MOD(X$3-$M4-LIGNE(INDIRECT("1:"&$P4/24))+1;$N4))=0;$O4;"");"")

Merci.

Cdlt.

4copie.xlsx (34.47 Ko)

Vérifie ta formule, il y a 2 fois X3 au lieu de X$3...

J'ai apporté les modifs mais cela ne change pas.

Bravo !!!

Si, vous pouvez prendre un petit peu de temps pour me donner quelques explications sur la formule svp.

Au vu de vos messages et réponses sur le forum, je pense que vous avez d'énormes compétences en programmation et en mathématiques.....Respect !!!

Merci de votre aide.

Je suppose que la condition initiale sur les dates : date en E (ou I ou M) supérieure à 0 (car si la cellule est vide, elle renvoie 0 qui est pris en compte comme date par Excel) et supérieure à la date en X (et colonnes suivantes) ne pose pas problème (même si à la source d'ajustements des références (relatives ou absolues).

C'est cette expression (si la condition initiale est vérifiée) qui doit demander quelques explications :

=SI(MIN(MOD(X$3-$I4-LIGNE(INDIRECT("1:"&$L4/24))+1;$J4))=0;$K4;"");"")

Si l'on ne tient pas compte des répétitions au delà de 24h, l'expression serait simplement :

=SI(MOD(X$3-$I4;$J4))=0;$K4;"");"")

Le cycle partant du jour indiqué en I (ou E ou M) et se répétant selon la périodicité indiqué en J (ou F ou N), lorsque la date en I est atteinte, la différence date jour et date début cycle est 0. Ensuite, chaque fois que la différence de dates est un multiple du cycle, MOD(diffDates;cycle) renverra 0, et dans ce cas on affecte la valeur prévue en K (ou G ou O).

Mais si l'effet concerne plus d'un jour, par ex. 48h, il faut pouvoir tester le jour même et le jour précédent, si 72h, il faut alors tester le jour même et les 2 jours précédents...

Il faut donc faire MOD(diffDates-{0;1};cycle) qui, validé matriciellement, renverra 2 valeurs. Si l'une des deux est 0, c'est que le jour est concerné.

Par exemple le cycle étant de 7, MOD(7-{0;1};7) renverra 0 et 6 ; MOD(8-{0;1};7) renverra 1 et 0 ; les autres différences renverront des couples tels que 2/1, 3/2... 6/5.

En testant si la valeur minimale renvoyée est 0 on s'assure que la date est à prendre en compte.

Dans la formule, la matrice {0;1} ou {0;1;2}... est renvoyée par LIGNE(1:2)-1 ou LIGNE(1:3)-1... Comme on ne sait pas à l'avance quelle est le numéro de la deuxième ligne à indiquer, on le fournit par l'expression répétEnH/24 qui renverra 1, 2 ou 3... et on le passe à la fonction LIGNE au moyen de INDIRECT : LIGNE(INDIRECT("1:"&répétEnH/24))-1

Cette expression étant à soustraire de la différence de dates, cela donne :

MOD(diffDates-LIGNE(INDIRECT("1:"&répétEnH/24))+1;cycle)

Il n'y a plus qu'à tester que le MIN des valeurs renvoyées ci-dessus soit 0...

Cordialement

Rechercher des sujets similaires à "mfc"