Couleur de fond selon résultat plusieurs MEFC
Tony44
-
Tony44 -
Tony44 -
Bonjour,
je cherche à gérer le fond d'une cellule excel de manière automatique.
Voici ma problèmatique :
- j'ai une ligne dont plusieurs colonnes sont renseignées avec des MFEC. Ces MFEC changent le fond des cellules concernées, les conditions sont différentes selon les colonnes.
- sur chaque ligne, j'ai une cellule bilan qui doit me donner le statut général
si au moins une cellule de la ligne a un fond rouge, alors le fond de la cellule bilan est rouge
sinon si au moins une cellule de la ligne a un fond orange, alors le fond de la cellule bilan est orange
sinon le fond de la cellule bilan est vert.
Je cale sur la mise en place de cette macro étant donné mon niveau en VBA.
Merci d'avance
Anthony
je cherche à gérer le fond d'une cellule excel de manière automatique.
Voici ma problèmatique :
- j'ai une ligne dont plusieurs colonnes sont renseignées avec des MFEC. Ces MFEC changent le fond des cellules concernées, les conditions sont différentes selon les colonnes.
- sur chaque ligne, j'ai une cellule bilan qui doit me donner le statut général
si au moins une cellule de la ligne a un fond rouge, alors le fond de la cellule bilan est rouge
sinon si au moins une cellule de la ligne a un fond orange, alors le fond de la cellule bilan est orange
sinon le fond de la cellule bilan est vert.
Je cale sur la mise en place de cette macro étant donné mon niveau en VBA.
Merci d'avance
Anthony
A voir également:
- Couleur de fond selon résultat plusieurs MEFC
- Resultat foot - Télécharger - Vie quotidienne
- Comment mettre un fond de couleur sur libreoffice writer - Guide
- Word couleur de fond texte - Guide
- Boite a couleur - Télécharger - Divers Photo & Graphisme
- Comment mettre une vidéo en fond d'écran - Guide
3 réponses
Bonsoir,
Voici une possibilité :
Pense à adapter les valeurs dans la partie initialisation.
Je n'ai pas mis en place de test pour vérifier qu'il y a bien le même nombre de lignes dans les données et dans la colonne bilan, et je considère que ces deux plages commencent à la même ligne.
N'hésite pas si tu as un soucis.
Voici une possibilité :
Sub Colorer()
'
' Déclaration des variables
'--------------------------
Dim coul_Vert, coul_Orange, coul_Rouge
Dim Plage_donnees As Range
Dim Plage_bilan As Range
Dim offset_ligne As Long
Dim offset_colonne As Long
Dim Est_orange As Boolean
Dim Est_rouge As Boolean
'
' Initialisation des variables
'-----------------------------
coul_Vert = 10
coul_Orange = 46
coul_Rouge = 3
Set Plage_donnees = ActiveSheet.Range("A1:G10")
Set Plage_bilan = ActiveSheet.Range("H1:H10")
'
' Analyse
'--------
For offset_ligne = 0 To Plage_donnees.Rows.Count - 1
Est_orange = False
Est_rouge = False
For offset_colonne = 0 To Plage_donnees.Columns.Count - 1
Select Case Range(Plage_donnees.Cells(1).Address).Offset(offset_ligne, offset_colonne).Interior.ColorIndex
Case coul_Rouge
Est_rouge = True
Case coul_Orange
Est_orange = True
Case Else
End Select
Next offset_colonne
If Est_rouge Then
With Range(Plage_bilan.Cells(1).Address).Offset(offset_ligne, 0).Interior
.ColorIndex = coul_Rouge
.Pattern = xlSolid
End With
ElseIf Est_orange Then
With Range(Plage_bilan.Cells(1).Address).Offset(offset_ligne, 0).Interior
.ColorIndex = coul_Orange
.Pattern = xlSolid
End With
Else
With Range(Plage_bilan.Cells(1).Address).Offset(offset_ligne, 0).Interior
.ColorIndex = coul_Vert
.Pattern = xlSolid
End With
End If
Next offset_ligne
'
End Sub
Pense à adapter les valeurs dans la partie initialisation.
Je n'ai pas mis en place de test pour vérifier qu'il y a bien le même nombre de lignes dans les données et dans la colonne bilan, et je considère que ces deux plages commencent à la même ligne.
N'hésite pas si tu as un soucis.
Bonsoir,
Pour compléter la réponse de gord21 j'ajouterais que sa macro travaille sur des fonds mis manuellement ou par macro mais pas sur une couleur mise par MFC.
Récupérer une couleur mise par MFC est relativement complexe (voir ici l'excellente fonction proposée lermite222 qui a eu le courage de s'y attaquer)
C'est sûrement plus simple, si c'est possible, que toutes tes cellules soient mises en couleur par macro (puisque tu es parti pour en mettre au moins une) et que tu utilises la proposition de gord.
Ou sinon modifie sa proposition en utilisant la fonction proposée.
eric
Pour compléter la réponse de gord21 j'ajouterais que sa macro travaille sur des fonds mis manuellement ou par macro mais pas sur une couleur mise par MFC.
Récupérer une couleur mise par MFC est relativement complexe (voir ici l'excellente fonction proposée lermite222 qui a eu le courage de s'y attaquer)
C'est sûrement plus simple, si c'est possible, que toutes tes cellules soient mises en couleur par macro (puisque tu es parti pour en mettre au moins une) et que tu utilises la proposition de gord.
Ou sinon modifie sa proposition en utilisant la fonction proposée.
eric