Function CompteCouleur(Rng As Range, Couleur As Long) As Long
Dim Cel As Range
Dim Compte As Long
For Each Cel In Intersect(Rng.Parent.UsedRange, Rng).Cells
If Cel.DisplayFormat.Interior.Color = Couleur Then Compte = Compte + 1
Next Cel
CompteCouleur = Compte
End Function
Sub Couleur()
MsgBox ActiveCell.DisplayFormat.Interior.Color
End Sub
Function CompteCouleur(Rng As Range, Couleur As Long) As Long
Dim Cel As Range
Dim Compte As Long
For Each Cel In Intersect(Rng.Parent.UsedRange, Rng).Cells
If Cel.DisplayFormat.Interior.Color = Couleur Then Compte = Compte + 1
Next Cel
CompteCouleur = Compte
End Function
Sub Couleur()
MsgBox ActiveCell.DisplayFormat.Interior.Color
End Sub
MerciIl y a cependant une limitation subtile...
Si ces couleurs sont issues de MFC et que des contenus de cellules qui conditionnent la MFC ne sont pas dans le Range passé en argument de la fonction, une modif de ces cellules-hors-Range modifant donc le nombre de cellules colorées, ne provoquera pas de recomptage des couleurs avant un recalcul de la feuille.
Si c'est un problème, et je ne vois pas comment un complément XLP pourrait y échapper, cela est au moins parfaitement contrôlable dans la fonction personnalisée mais il faut en savoir plus sur les éventuelles MFC concernées.
Jamais eu de soucis avec le complément XLP et les couleurs obtenues via MFC...Il y a cependant une limitation subtile...
Si ces couleurs sont issues de MFC et que des contenus de cellules qui conditionnent la MFC ne sont pas dans le Range passé en argument de la fonction, une modif de ces cellules-hors-Range modifant donc le nombre de cellules colorées, ne provoquera pas de recomptage des couleurs avant un recalcul de la feuille.
Si c'est un problème, et je ne vois pas comment un complément XLP pourrait y échapper, cela est au moins parfaitement contrôlable dans la fonction personnalisée mais il faut en savoir plus sur les éventuelles MFC concernées.