apnart
XLDnaute Occasionnel
Bonjour,
J'utilise depuis longtemps une fonction (probablement issue d'ici) qui compte les cellules de couleur en fonction d'une cellule de référence, et ça fonctionne très bien
Voici le code :
Je voudrais maintenant compter les couleurs de cellules dont la couleur a été changée par une mise en forme conditionnelle.
J'ai trouvé sur le net le code suivant permettant de trouver la valeur de la couleur MFC, ça fonctionne, mais je n'arrive pas à utiliser cela pour l'intégrer dans ma 1ère fonction.
Si vous aviez le p'tit coup de pouce qui va bien pour dénouer mon soucis, ça serait super !
Merci d'avance,
Bruno.
J'utilise depuis longtemps une fonction (probablement issue d'ici) qui compte les cellules de couleur en fonction d'une cellule de référence, et ça fonctionne très bien
Voici le code :
Code:
Function CompteCouleurFond(Zne As Range, CaseRef As Range) As Integer
Dim CouleurInterieure As String
Application.Volatile True
CompteCouleurFond = 0
CouleurInterieure = CaseRef.Interior.ColorIndex
For Each cell In Zne
If cell.Interior.ColorIndex = CouleurInterieure Then CompteCouleurFond = CompteCouleurFond + 1
Next cell
End Function
Je voudrais maintenant compter les couleurs de cellules dont la couleur a été changée par une mise en forme conditionnelle.
J'ai trouvé sur le net le code suivant permettant de trouver la valeur de la couleur MFC, ça fonctionne, mais je n'arrive pas à utiliser cela pour l'intégrer dans ma 1ère fonction.
Code:
Public Function CouleurMFC(RG As Range, Optional Mode As Byte = 0) As Variant
Dim e As Long, i As Byte, LoTest As Boolean
Dim LoMFC As FormatCondition
Application.Volatile
'boucle sur le nombre de condition(s)
'Si pas de MFC .FormatConditions.Count renvoi 0
For i = 1 To RG.FormatConditions.Count
Set LoMFC = RG.FormatConditions(i)
If LoMFC.Type = xlCellValue Then
'tester le type de la formule entrée
Select Case LoMFC.Operator
Case xlEqual
LoTest = RG = Evaluate(LoMFC.Formula1)
Case xlNotEqual
LoTest = RG <> Evaluate(LoMFC.Formula1)
Case xlGreater
LoTest = RG > Evaluate(LoMFC.Formula1)
Case xlGreaterEqual
LoTest = RG >= Evaluate(LoMFC.Formula1)
Case xlLess
LoTest = RG < Evaluate(LoMFC.Formula1)
Case xlLessEqual
LoTest = RG <= Evaluate(LoMFC.Formula1)
Case xlNotBetween
LoTest = (RG < Evaluate(LoMFC.Formula1) Or RG > Evaluate(LoMFC.Formula2))
Case xlBetween
LoTest = (RG >= Evaluate(LoMFC.Formula1)) And (RG <= Evaluate(LoMFC.Formula2))
End Select
If LoTest Then
'Peu ajouter d'autre format si nécessaire,
'comme la bordure, la police etc..
Select Case Mode
Case 0
CouleurMFC = LoMFC.Interior.ColorIndex
Case 1
CouleurMFC = LoMFC.Interior.Color
End Select
Exit Function
End If
End If
Next i
CouleurMFC = xlNone
End Function
Si vous aviez le p'tit coup de pouce qui va bien pour dénouer mon soucis, ça serait super !
Merci d'avance,
Bruno.