Mise en forme conditionnelle qui renvoie une date selon le projet, peu importe l'opérateur

Bonjour, à toutes et à tous !

Mon But est de créer un fichier excel qui permet à plusieurs opérateurs (6) de rentrer des dates selon un code projet (0, 1, 2, 3, etc…) chacun aura son tableau. Une fois que les dates seront renseignées, je souhaiterais qu’une mise en forme conditionnelle s’applique afin de faire apparaître dans le planning une couleur à la case renvoyée aux dates renseignées, selon le projet, depuis les 6 tableaux ( il peut arriver que plusieurs opérateurs travaillent sur le même projet, mais à des dates différentes)

sur le fichier excel Joint, Je comprends la formule excel que j’ai appliqué dans une mise en forme conditionnelle sur la feuille « planning » (ligne 10, des cases en bleu [formule =SI(OU(etc…]), le problème c’est qu’elle va s’appliquer seulement aux case liées par la formule et ne sera pas « dynamique », si je peux ainsi dire, sur l’ensemble du planning.

mes critères:

  • Je souhaiterai que les dates en colonne « date_de_Test » pour les 6 opérateurs ( il y a 6 tableaux) dans la feuille de travail « date planification » selon le nr_de_projet (à nouveau dans les 6 tableaux) renvoie une mise en forme conditionnelle dans la feuille « planning » à la date souhaité pour chacun des projets (colonne A, feuille « planning »).

J’espère que c’est assez clair comme explication… J’ai un peu de peine à l’expliquer plus clairement.

Pensez-vous que c’est possible d’appliquer cela dans une formule excel que je peux mettre directement en mise en forme conditionnelles, ou est-ce que je dois passer en VBA (et là pour le coup je n’y comprends pas grand chose à vrai dire…)

Edit: J’ai essayé de mettre des couleurs sur le fichier excel, afin de faciliter la compréhension (je l’espère).

Je vous remercie d’avance pour votre aide.
Planning_template_help.xlsx (679,6 Ko)

Bonsoir,
Le mieux c’est de mettre une valeur à la place des couleurs (dans l’planning).


Cela nous permettra de retrouver la date.
Si non, Il y a aussi l’côte VBA, les macros ou bien les formules personnalisées.
Cordialement

Bonsoir,

Je vous remercie pour votre réponse.
En fait, si je souhaite mettre une couleur dans ces cases c’est que, selon le projet, nous devrions renseigner autre chose dans ces cases (nombre d’échantillons à tester par exemple) et je ferai en sorte de faire des calculs sur d’autre colonne en fonction de ces « nouvelles valeures » qu’elles soient numériques ou textuelles.

vous utilisez excel365 ?

bonsoir Cow18,

oui j’utilise excel 365

j’essaierai demain, si je trouve le temps, de mettre un début de code VBA avec des infos que j’essai de retrouver sur le net.

pour le moment, on a la plage nommée « date_de_test » pour les 6 opérateurs, 3 colonnes (projet+début+fin) de la ligne 4 à 40.
Puis une fonction personnalisée « Dates_Projet » avec paramètres cette plage et le numéro du projet.
Puis la feuille « Mes Dates » avec en colonne A vos numéros de projets et en colonne B cette fonction. Elle mettra toutes les dates assignées par ces opérateurs, sauf les weekends, donc au max 260 cellules (=C:JA). Il est « interdit » d’écrire quelque chose dans ces cellules.
Puis une MFC pour complèter cela
Planning_template_help.xlsm (697,7 Ko)

1 « J'aime »

Bonjour, tout d’abord merci de prendre du temps pour moi !

C’est incroyable tout à l’air de fonctioner pour le moment !
Après quelques tests, je vois bien apparaître toutes mes case en bleu, jusqu’au limites que vous avez mentionné.

Cependant, quelques questions me viennent à l’esprit :

  • la plage nommée « date_de_test » de la ligne 4 à 40, comment est-ce que je peux étendre à 1000 par exemple ? dois-je faire cela dans le gestionnaire de noms ? ( je veux rien toucher, avant de bien comprendre)

EDIT: je viens d’étendre à 1000, mais la mise en forme conditionnelle ne s’applique plus au delà de la ligne 37 dans la feuille « planning »…

EDIT2: J’ai cru que la MFC était une macro, mais en fait non, je viens de l’adapter et cela fonctionne

  • « Toute les dates assignées par ces opérateurs, sauf, les week ends, donc au max 260 cellules (C=JA) » Dois-je considérer que si je souhaites étendre mon planning sur 2 ans (parfois nous avons des tests à planifier jusqu’a 24 mois) je dois me limiter à 260 cellules ? (je ne suis pas sur d’avoir bien compris… ^^)

EDIT: ma mise en forme conditionnell s’applique bien sur 2 ans, dois-je comprendre que je ne peux pas renseigner plus de 260 dates distinctes par projet ?

Je remets le fichier excel avec quelques modifs de ma part.

Planning_template_help.xlsm (794,8 Ko)

bonjour, super que vous comprenez presque tout.
la formule de la MFC
=NB.SI(DECALER(‹ Mes Dates ›!$B$1;EQUIV($A10;‹ Mes Dates ›!$A$2:$A$300;0);;;300);R$7)

‹ Mes Dates ›!$A$2:$A$300;0) = on recherche votre numéro du projet dans cette plage, si vous avez plus de 300 projets ( :boom:) vous pouvez modifier ce 300.

Puis ce 300 en gras, c’est le nombre de colonne qu’on utilise, 2 années = 365 * 2 * 5 / 7 = 521, donc 525 pour sécurité (??? mais est-ce possible avoir autant ?). Ces dates d’un projet sont unique (pas de doublons) mais ne pas trié, c’est nécessaire ou cela est inutile pour vous ?

un petit modif pour la macro, si vos projets durent plus de 2 ans, limiter à vos 2 ans.

Function Dates_Projet(Plage, projet)
     Dim j     As Long, Min_date As Long, Max_Date As Long
     
     'pour des projets de long durée, limiter les dates à vos 2 années
     Min_date = Sheets("planning").Range("R7").Value 'votre premier date
     Max_Date = WorksheetFunction.EDate(Min_date, 24) - 1 '2 années plus tard
     
     Set dict = CreateObject("scripting.dictionary")
     For Each ar In Plage.Areas              'parcourir pour tous les opérateurs
          aa = ar.Value2                     'plage des 3 colonnes de l'opérateur
          For i = 1 To UBound(aa)            'parcourir toutes les lignes
               If aa(i, 1) = projet And aa(i, 2) > 0 Then     'c'est ce projet et date de début est coonu
                    For j = Application.Max(Min_date, aa(i, 2)) To Application.Min(Max_Date, aa(i, 3))   'de la date de début vers date de fin
                         If WorksheetFunction.Weekday(j, 2) <= 5 Then dict(j) = 0     'ajouter toutes les dates sauf les weekends
                    Next
               End If
          Next
     Next

     If dict.Count = 0 Then
          Dates_Projet = "Aucun"             'le cas où rien est assigné pour ce projet
     Else
          aa = dict.keys
          Dates_Projet = dict.keys

     End If
End Function

Re,

J’essaierai de faire ce changement ce soir ou demain, et je reviendrais vers vous :slight_smile:

Pour répondre simplement à votre question (en gras) si c’est possible d’avoir autant, oui…

Enfait, il s’agit d’un seul projet (pour le moment), qui lui-même est séparé en 11 catégories (de produits) découpées en une vingtaine d’étapes (de vérification). Parmi ces étapes il y a 4 stabilités sur les produits à effectuer qui prennent du temps.

Exemple

  • stabilité 1 : toute les deux semaines jusqu’à deux mois, et à chaque temps un ou deux jours de tests selon l’échantillonage.

  • stabilité 2: la même chose tout les 3 mois pendant 9, 12, 18 ou 24 mois selon le produit.

ça va très vite… ^^

Si j’ai noté en colonne A nr_de_projet, c’est juste pour renvoyer une référence à chaque ligne, en gros une ligne correspond à un type de test/stabilité, etc…

Plus tard, j’aimerai faire une seconde feuille avec les mêmes tableaux qui permettrait de mettre les jours fériés ainsi que les vacances ou formation de chacun des opérateurs (J’essaierai de mon coté avec la macro que vous venez de me proposez). Ce planning facilitera le suivi et évitera les surcharges de travail.

j’ai modifié cette fonction personallisée et maintenant vous pouvez même utiliser un TCD dans la feuille « Mes Dates ».
J’ai l’air que le fichier est devenu/était lent ???
Il faut essayer à optimaliser les MFCs. Quand on insére et/ou supprime des lignes, les MFCs commencent à se doubler. De temps en temps, il faut les « nettoyer » et alors, on prend (macro « MFC ») la ligne 10 comme source, supprime toutes les MFC dessus et copie&colle ces MFCs sur les lignes nécessaires (pas toutes ces 300, si on ne les utilise pas).
Planning_template_help (1).xlsm (1,4 Mo)

Bonjour Cow18,

Je fais plein d’essai cette semaine sur cette template, je reviendrai vers vous tout bientôt ^^

bonne journée

Bonjour Cow18, j’espère que vous allez bien.

Après plusieurs essais, j’aimerai savoir s’il est possible d’avoir une modification sur le dernier fichier que vous m’avez transmis, celui avec lequel vous avez ajouté le tableau croisé dynamique.

Vous avez fixer à deux ans au maximum, pourriez-vous retirer cette limite s’il vous plaît ?

Et concernant la MFC et la mise à jour automatique, pour le coup cela ralenti mon ordinateur, est-il possible d’avoir la précédente MFC que vous m’aviez transmise elle convient très bien.

Je vous avoue que j’ai essayé d’effectuer les changements moi-même, mais je n’ai pas encore cette maitrîse qu’est la vôtre :slight_smile:

je vous remercie beaucoup pour ce fichier sinon, j’ai réussi à le passer sur onedrive, et fais plusieurs essaie avec plusieurs personnes dessus et tout à l’air de bien fonctionner pour le moment.

bien à vous

si on remplace les MFCs par des couleurs fixes, cela vous convenez ? (Vous n’utilisez pas d’autre couleurs dans la plage à partir de la colonne R ?
Combien d’années voulez-vous ?

cette formule convenait très bien, je l’avais adapté pour l’étendre à plus de colonnes, mais si vous avez un moyen de la mettre en version VBA sans pour autant allourdir le fichier je suis preneur…

Sur 3 ans ce serait bien.

Planning_template_help (1) (1).xlsm (2,4 Mo)

1 « J'aime »

merci Cow18, sympa le fait que les MFCs changent selon la couleur du tableau ou les dates sont renseignées. merci beaucoup !!

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.