Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
dans le fichier joint, un planning, je souhaite que quand mes collègues choisissent une activité dans le menu déroulant de chaque case; le texte choisi change de couleur, si le nombre de choix identique dans la colonne est supérieur à la mise en forme condidionnelle définie dans le cadre du bas
Par exemple, dans mon modèle, je voudrais que la 3ème personne qui a rentré INS dans la colonne 8/1 voit son INS passer au rouge car la mise en forme conditionnelle de la case D50 est à 2
Merci d'avance de votre aide. Je me tiens à votre disposition pour plus d'explications
En fait je n'ai pas tout compris, même avec l'exemple.
En D50, la MFC est rouge si le nombre de INS recontré est <2, vert si =2 et blanc si >2.
Lorsque l'on saisit un nouveau code "INS" dans la colonne, la couleur de D50 va changer à partir de la deuxième saisie mais comment veux-tu gérer la couleur de "INS" dans la colonne?
La saisie se fait-elle sur n'importe quelle ligne de D3😀47 ou bien selon un ordre précis?
dans le fichier joint, un planning, je souhaite que quand mes collègues choisissent une activité dans le menu déroulant de chaque case; le texte choisi change de couleur, si le nombre de choix identique dans la colonne est supérieur à la mise en forme condidionnelle définie dans le cadre du bas
Par exemple, dans mon modèle, je voudrais que la 3ème personne qui a rentré INS dans la colonne 8/1 voit son INS passer au rouge car la mise en forme conditionnelle de la case D50 est à 2
Merci d'avance de votre aide. Je me tiens à votre disposition pour plus d'explications
Salut
Avant de commencer un travail, j'aime bien savoir ce que je dois faire
c'eut été pas mal de laisser la feuille Base, ou de l'incorporer à ton fichier d'exemple.
Un fichier d'exemple, c'est toutes les infos qui interviennent dans le processus, reduit à une petite plage pour le pas exéder les limites des fichiers transmissibles.
Ta plage de travail va de où à où ? Est-elle évolutive ?
Dans la zone il y a des cellules fusionnées (grisées, avec "X") :
ça complique inutilement le travail. Pourquoi les fusionner, alors qu"avec une MFC, on peut les griser, à condition que "X" fasse partie de la liste de validation
Comme on parle de planning, la ligne 2 contient les dates du planning, formatées en semaine.
Pourquoi les mettre en "dur" ?
F2 : =D2+1 copie de cette cellule sur H2, J2
L2 : =J2+1 (pour garder le format)
Copie de D2:M2 sur O2 (les format restent correctes
O2 = =L2+3 (pour récupérer la bonne date)
Copie de O2:W2 sur Z2 et sur AK2
Après cette manip, il suffit de changer la date en D2 pour mettre à jour ton tableau. On peut même faire une MFC pour que D2 passe en rouge si la date entrée ne correspond pas à un lundi
A+
désolé, je n'ai pas pensé à mettre la base avec, je suis une buse...
Par contre je ne suis pas l'auteur de cette base, je la récupère et essaie de l'améliorer un peu. Mais celui qui l'a créée avait un bien meilleur niveau que moi, ce qui signifie malheureusement que je ne comprends pas parfaitement tout ce que tu me dis mais je vais essayer de faire un effort de déchiffrage
Voici cependant le fichier avec la base qui va bien
Merci
Edit : je viens de comprendre pour les dates
Ingénieux et bien pratique merci
Pour les X ils sont là juste parce que je ne veux pas que cette plage soit modifiée car on est en réunion le jeudi après midi
En fait je n'ai pas tout compris, même avec l'exemple.
En D50, la MFC est rouge si le nombre de INS recontré est <2, vert si =2 et blanc si >2.
Lorsque l'on saisit un nouveau code "INS" dans la colonne, la couleur de D50 va changer à partir de la deuxième saisie mais comment veux-tu gérer la couleur de "INS" dans la colonne?
La saisie se fait-elle sur n'importe quelle ligne de D3😀47 ou bien selon un ordre précis?
La saisie se fait sur n'importe qu'elle ligne de D3😀47 en effet, n'importe qui peut décider de se positionner en INS simplement pour cet exemple je n'en ai besoin que de 2 planifié.
D50 me permet de voir si il y en a trop, mais j'aimerai que la personne qui remplit sa ligne de planning s'en rende compte et à ce jour, mes collègues ne tiennent pas compte de D50
Je souhaite donc que la troisième personne qui mettra INS s'en voit informée (idéalement par le changement de la couleur de police pour ne pas trop charger le tableau sinon par une MFC ou autre si vous avez d'autres idées
désolé, je n'ai pas pensé à mettre la base avec, je suis une buse...
Par contre je ne suis pas l'auteur de cette base, je la récupère et essaie de l'améliorer un peu. Mais celui qui l'a créée avait un bien meilleur niveau que moi, ce qui signifie malheureusement que je ne comprends pas parfaitement tout ce que tu me dis mais je vais essayer de faire un effort de déchiffrage
Voici cependant le fichier avec la base qui va bien
Merci
Edit : je viens de comprendre pour les dates
Ingénieux et bien pratique merci
Pour les X ils sont là juste parce que je ne veux pas que cette plage soit modifiée car on est en réunion le jeudi après midi
Donc, si tu veux de l'aide, réflêchis un peu et donnes nous de quoi t'aider, et on pourra te proposer des amélioration : entre autres, une MFC plus élaborée : Ton X dans les colonnes grisée doit être une valeur de la liste de validation au même titre que les autres possibilités, qui transforme la colonne en gris
un début de réponse, mais si j'avais un "X" dans les possibilités, on pourrait travailler avec une MFC, sans macro
désolé j'ai rajouté la base mais oublié de réenlever la protection (j'ai remis le bon fichier libre de manipulations dans mon post d'au dessus)
peux tu me dire comment tu as fait pour que ça fonctionne et accessoirement effacer le fichier mis à dispo en le remplaçant par celui que j'ai re uppé car j'ai oublié d'enlever les noms dans la base
merci...
Edit
j'ai bien vu la macro. malheureusement je la comprends pas vraiment mais bon...
Cependant est il possible de faire la même chose pour l'ensemble des activités suivantes/
AZ
INS
TAM?
Par ailleurs, la valeur de référence de la MFC n'est pas forcément 2, elle peut être modifiée
désolé j'ai rajouté la base mais oublié de réenlever la protection (j'ai remis le bon fichier libre de manipulations dans mon post d'au dessus)
peux tu me dire comment tu as fait pour que ça fonctionne et accessoirement effacer le fichier mis à dispo en le remplaçant par celui que j'ai re uppé car j'ai oublié d'enlever les noms dans la base
merci...
Edit
j'ai bien vu la macro. malheureusement je la comprends pas vraiment mais bon...
Cependant est il possible de faire la même chose pour l'ensemble des activités suivantes/
AZ
INS
TAM?
Par ailleurs, la valeur de référence de la MFC n'est pas forcément 2, elle peut être modifiée
Salut
Avec les infos, on commence à approcher de la solution 😀
Comme la macro commence à faire quelque chose de cohérent, je l'ai commentée.
Dans la feuille bas, à la liste Q, on ajoute le nombre d'occurences maxi à ne pas dépasser. Vide ou 0 signifiant qu'il n'y a pas de maximum
comme la feuille est dans le même classeur, ça fonctionne, mais si ce n'est plus le cas dans ton fonctionnement, recherche dans le code les lignes XXXXXXXXX
Derrière, il y a une instruction With à modifier, pour le faire pointer sur la bonne feuille du bon classeur
S'il y a encore des questions, poses-les.
A+
Edit : Comme maintenant, je sais où je vais, si on a fait une erreur dans la cellule, je suis partis du principe, qu'on l'effaçait. Pas qu'on la remplaçait par un autre code.
Si c''était une possibilité, il faudrait dès le début remettre la couleur de B à la cellule, puis la traiter, et supprimer le test not(isempty(cel)), puisque la cellule serait remise en couleur normale, puis éventuellement coloriée.
Il persiste un souci si je modifie la MFC (en mettant 1, 3 ou +)
je préfère que cela change de couleur si on met tout autre activité et pas juste vide car le principe est que si ils ne peuvent être en INS, ils doivent choisir une des autres activités.
est il possible d'élargir la macro aux autres activités notées plus haut?
merci en tous cas pour les explications, je vais essayer de comprendre tout par la suite.
cependant je ne comprends pas le début qui a l'air de ne servir que pour la colonne du jeudi après midi
a
As tu fait une modification des lignes saumon car je n'ai plus le menu déroulant? avec les bureaux à choisir (311.312...)
Salut TANGHAM et le forum Il persiste un souci si je modifie la MFC (en mettant 1, 3 ou +) je préfère que cela change de couleur si on met tout autre activité et pas juste vide car le principe est que si ils ne peuvent être en INS, ils doivent choisir une des autres activités. est il possible d'élargir la macro aux autres activités notées plus haut?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim X As Long
Dim Ref_Nb As Integer
Dim Nb_Val As Integer
For Each Cel In Target
'Pour chaque cellule de la plage de modification
If IsDate(Cells(2, Cel.Column).MergeArea.Cells(1)) And _
Cel.MergeArea.Cells.Count = 1 And _
Cel.row < 47 Then
'si la cellule fusionnée en ligne 2 de la colonne de la cellule testée
'contient une date et que la cellule testée n'est pas fusionnée
'évite les jeudi PM et les blancs entre les semaines
Cel.Interior.ColorIndex = Range("B" & Cel.Row).Interior.ColorIndex
If Not (IsEmpty(Cel)) Then
'si la cellule n'est pas vide
Nb_Val = 0
'total remit à 0
If Cel.Row Mod 2 = 1 Then
'si la cellule est sur une ligne impaire
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'il faudra remettre le chemin du fichier contenant la feuille Base
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
With Sheets("Base")
'mettre en préfixe, si l'instruction commence par "." ou "!"
For X = 4 To 27
'pour x=4 jusqu'à 27 par incrément de 1
If .Range("Q" & X) = Cel Then
'si Base!Qx = cel
Ref_Nb = .Range("R" & X)
'variable = Base!Rx
Exit For
'sortir de la boucle
End If
'fin test Base!Qx
Next X
'x suivant
End With
'Ref_Nb contient le nombre maximum d'occurences autorisées dans la colonne
'correspondant à la valeur de Cel.
'fin préfixe
'on stocke la valeur de la cellule
If Ref_Nb > 0 Then
's'il y a une limite
For X = 3 To 47 Step 2
'Pour X=3 à 47 pae incrément de 2
If Cells(X, Cel.Column) = Cel Then
'si la cellule de la même colonne ligne X à la même valeur
Nb_Val = Nb_Val + 1
'total occurence + 1
If Nb_Val > Ref_Nb Then Exit For
'si Total occurences > nb autorisé, sortie boucle
End If
'Fin test comparaison avec Cel
Next X
'X suivant
If Nb_Val > Ref_Nb Then Cel.Interior.ColorIndex = 3
'si Total occurences > nb autorisé, mettre en rouge
End If
'fin limite
End If
'fin test cellule ligne impaire
End If
'fin test cellule vide
End If
'fin test cellule date et pas jeudi PM
Next Cel
'cellule suivante
End Sub
C'est ce que je m'étais aperçu et qui a valu un Edit
En gros, la même macro, sauf qu'on commence par remettre la couleur d'origine
cependant je ne comprends pas le début qui a l'air de ne servir que pour la colonne du jeudi après midi
Je suppose que tu parle de cette ligne :
If IsDate(Cells(2, Cel.Column).MergeArea.Cells(1)) And _
Cel.MergeArea.Cells.Count = 1 Then
2 tests dont le résultat logique est lié par une fonction ET (seul les 2 Vrai entraine un résultat Vrai)
1er Test : IsDate(Cells(2, Cel.Column).MergeArea.Cells(1))
si la fusion de la cellule de la même colonne ligne 2 est une date => Vrai
Permet de supprimer toutes les cellules qui n'appartiennent pas au planning : les espaces entre semaines, mais aussi toutes les cellules à droite du planning (à partir de la colonne AU). Mais laisse la possibilité d'étendre le nombre de semaines gérées, sans modification de la macro.
Comme on a 2 colonnes à gérer (par exemple D et E, on ne peut pas se contenter de tester la cellule de la ligne 2 de la même colonne (E2 est vide, c'est D2 qui contient la date).
Donc, je demande de regarder la fusion à laquelle appartient la cellule de la ligne 2 (dans l'exemple D2:E2) dont la cellule en haut à gauche contient la valeur.
Test 2 Cel.MergeArea.Cells.Count = 1 Nombre de cellule de la fusion= 1
Élimine le jeudi PM, puisque ses cellules sont fusionnées sur 2 lignes
Mais aussi les cellules de la ligne 2 qui sont fusionnées.
et en expliquant, je me suis rendu compte qu'il manquait une limite basse que je viens d'ajouter And Cel.Row < 47
et que la cellule testée soit au maximum au numéro de ligne 46
As tu fait une modification des lignes saumon car je n'ai plus le menu déroulant? avec les bureaux à choisir (311.312...)
Bien fait, Na ! 😛
Je n'ai rien fait, mais comme ta base était définie sur un autre fichier, c'est ce que j'avais pour toutes les listes de validation.
Il faut redéfinir les noms utilisés, soit sur le classeur, soit dans un autre classeur, mais dans ce cas, il faudra aussi modifier la macro.
Pour faire simple, tu les redéfinit sur ce classeur, en masquant la feuille Base, pour éviter trop de tripatouillages
Salut
P'vez répéter la question ?!?
Dans la feuille base, en colonne R sur la même ligne que ton Tntitulé, tu mets la limite que tu ne veux pas dépasser : 0, pas de limite, un chiffre : dès que le nombre d'intitulés dépasse celui fixé en R, le fond passe rouge
A vrai dire, comme je te l'ai dit, ça n'est pas moi qui ait créé ce fichier et je ne vois pas à quoi renvoit la colonne R de la base
En l'occurence, pour l'AZ et le TAM, le chiffre reste fixe (2 et 1 respectivement) par contre pour l'INS cela peut varier de 0 à 3 selon les jours (ce fichier type est configuré sur une valeur moyenne de 2)
A vrai dire, comme je te l'ai dit, ça n'est pas moi qui ait créé ce fichier et je ne vois pas à quoi renvoit la colonne R de la base
En l'occurence, pour l'AZ et le TAM, le chiffre reste fixe (2 et 1 respectivement) par contre pour l'INS cela peut varier de 0 à 3 selon les jours (ce fichier type est configuré sur une valeur moyenne de 2)
Salut
Feuille "Base"
en Q5 tu as AZ, tu mets 2 en R5
en Q8 tu as TAM, tu mets 1 en R8
Quand tu modifies ton planning, la macro automatique regarde si la nouvelle valeur existe dans la liste de la feuille "Base" et quand elle la trouve, elle regarde la valeur de la cellule de la colonne de droite (R) : si elle est vide ou égale à 0, elle ne fait rien, mais, s'il y a un nombre, il sert pour déterminer la limite dans la macro
A+
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.