1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Sub TEST()
Dim Col As Long, colmax As Double
Dim Fc As FormatCondition, F1
Application.ScreenUpdating = False
ReDim couleur(10) As Long
Lig = 1
For Col = 3 To 12 'de la colonne 3 à 12
i = 1
'Extraction de la couleur de la MFC
Set c = Cells.Find(Empty) 'on cherche une cellule vide pour y mettre "Vrai" si la condition est trouvée
For Each Fc In Cells(5, Col).FormatConditions 'parmi les 3 conditions de la MFC de la cellule testée
c.FormulaLocal = Fc.Formula1: F1 = c
If F1 Then Exit For 'si F1= vrai alors sortir boucle
Next Fc
If Not Fc Is Nothing Then couleur(i) = Fc.Interior.Color
Cells(Lig, "Z") = couleur(i) ' sauvegarde de la couleur en colonne Z
Lig = Lig + 1
i = i + 1
c.Clear
Next Col
colmax = Application.WorksheetFunction.Mode(Range("Z1:Z10")) 'on récupère la couleur la plus fréquente
Sheets("Synthèse résultats ctrl période").Range("M5").Interior.Color = colmax ' on l'applique à la cellule en colonne M
Range("Z1:Z10").ClearContents 'On efface la zone où sont mémorisées les couleurs trouvées
End Sub
Sub FormatConditionnel()
'déclaration des variables
Dim Rng As Excel.Range 'pour désigner la plage sur laquelle s'applique la MFC
Dim Fc1 As Excel.FormatCondition, Fc2 As Excel.FormatCondition, Fc3 As Excel.FormatCondition 'pour chaque Format conditionnel
Set Rng = Range("C5:L5") 'plage sur laquelle s'applique la MFC
Rng.FormatConditions.Delete 'On efface les MFC précédentes
Set Fc1 = Rng.FormatConditions.Add(Type:=xlExpression, Formula1:="=C5<C1") 'Formule appliquée au 1er format conditionnel
Fc1.Interior.Color = RGB(255, 0, 0) 'application de la couleur, ici le rouge
Set Fc2 = Rng.FormatConditions.Add(Type:=xlExpression, Formula1:="=C5=C1") 'Formule appliquée au 2ème format conditionnel
Fc2.Interior.Color = RGB(0, 255, 0) 'application de la couleur, ici le vert
Set Fc3 = Rng.FormatConditions.Add(Type:=xlExpression, Formula1:="=C5>C1") 'Formule appliquée au 3ème format conditionnel
Fc3.Interior.Color = RGB(0, 0, 255) 'application de la couleur, ici le bleu
End Sub |