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.