Suivi projets - transitions entre les phases du projet
Bonjour;
Je reviens encore vers vous, s’il vous plaît, pour un petit coup de main sur la macro que j'essaie d'ajuster certains critères
. Pour l'instant, elle fonctionne pas mal avec cette formule :
cell.Formula = "=IF(Jalons_tdb!$C" & (row - 3) & "=Tdb!" & baseCol & "$3, IF(Jalons_tdb!$D" & (row - 3) & "=\"" & categorie & "\", \"turquoise\", \"\"), \"\")"
cellValue = cell.Value
Cette formule vérifie si la colonne "C" de "Jalons_tdb" correspond à la ligne "3" de "Tdb". Si oui, elle colore la cellule concernée en turquoise, ainsi que celles à gauche.
Mais maintenant, j'aimerais ajouter deux nouveaux critères :
1. Coloration des cellules à droite: J'aimerais que les cellules à droite de celle colorée en turquoise soient peintes en bleu clair, mais selon les règles suivantes :
- Si la cellule turquoise est entre les colonnes 2 et 5, alors colorons en bleu clair jusqu'à la colonne 6.
- Si elle est entre les colonnes 6 et 10, alors jusqu'à la colonne 11.
- Si elle est entre les colonnes 11 et 13, alors jusqu'à la colonne 14.
- Si elle est entre les colonnes 14 et 15, alors jusqu'à la colonne 16.
2. Gestion des phases : L'idée est que les cellules à gauche de la turquoise deviennent blanches quand on change de phase (par exemple, de "cadre" à "Fab", "Rec", etc. ). Cela aidera à visualiser clairement les transitions entre les phases du projet.
Je vous ai joint une illustration pour mieux expliquer et l’Excel.
Pouvez-vous m'aider à intégrer ces fonctionnalités ? Merci d'avance pour votre temps et votre expertise !
Bien à vous,
Bonsoir,
J'ai repris votre code complet, voici ma version :
Sub LRDColor()
Dim Lig As Long, Col As Integer, TabCol(0 To 6), Cpt As Integer, TurColor As Integer, Suite As Boolean, I, J
TabCol(0) = 1: TabCol(1) = 6: TabCol(2) = 11: TabCol(3) = 12: TabCol(4) = 14: TabCol(5) = 16: TabCol(6) = 17
TurColor = 0
' init des couleurs
ActiveSheet.Range("B5:P28").Interior.Color = xlNone
' on boucle sur les lignes
For Lig = 5 To 28
' on boucle sur les groupe de cellules
For Cpt = 1 To 5
' on boucle sur les colonnes de ces groupes
For Col = TabCol(Cpt - 1) + 1 To TabCol(Cpt)
If Cells(Lig, Col).Value = "turquoise" Then TurColor = Col: Exit For
Next Col
' si TurColor <> 0 c'est qu'on a trouvé une valeur turquoise dans ce groupe de colonne
If TurColor > 0 Then
' on met le bleu ciel sur la ligne du groupe de colonne
Range(Cells(Lig, TabCol(Cpt - 1) + 1), Cells(Lig, TabCol(Cpt))).Interior.Color = RGB(221, 235, 247)
' on met en turquoi à gauche de la cellule turquoise
Range(Cells(Lig, TabCol(Cpt - 1) + 1), Cells(Lig, Col)).Interior.Color = RGB(13, 183, 191)
If TurColor = TabCol(Cpt) Then Suite = True ' si turquoise se trouve sur la dernière colonne du groupe alors on met suite à VRAI de façon à colorier en bleu ciel le prochain groupe
Else
If Suite Then
' on met le bleu ciel sur la ligne du groupe de colonne
Range(Cells(Lig, TabCol(Cpt - 1) + 1), Cells(Lig, TabCol(Cpt))).Interior.Color = RGB(221, 235, 247)
Suite = False
End If
End If
TurColor = 0
Next Cpt
Next Lig
End SubA vous de l'essayer sur une copie de votre fichier.
@ bientôt
LouReeD
Salut @LouReeD;
ça a marché parfaitement!
Merci beaucoup pour votre aide!
à bientôt,
Emy
Bonsoir,
merci de ce retour et remerciement !
En "partant de zéro" quelque fois cela peut simplifier les choses également
@ bientôt
LouReeD