XL 2016 Nombre de couleur

Tsimbina

XLDnaute Junior
Bonjour,

Quelqu'un connait une formule pour déterminer le nombre de couleur dans un tableau excel ?
En PJ un fichier exemple.

Merci d'avance.
 

Pièces jointes

  • Nb couleur.xlsx
    13.5 KB · Affichages: 14
Solution
Bonjour Tsimbina, le forum.

Avec une fonction.

Function CompteCouleur(plage As Range, CouleurReference As Range) As Integer
Application.Volatile
Dim r As Range
Dim i As Integer
For Each r In plage
If r.Interior.Color = CouleurReference.Interior.Color Then i = i + 1
Next
CompteCouleur = i
End Function

Quincy

XLDnaute Occasionnel
Supporter XLD
Bonjour Tsimbina, le forum.

Avec une fonction.

Function CompteCouleur(plage As Range, CouleurReference As Range) As Integer
Application.Volatile
Dim r As Range
Dim i As Integer
For Each r In plage
If r.Interior.Color = CouleurReference.Interior.Color Then i = i + 1
Next
CompteCouleur = i
End Function
 

Pièces jointes

  • Nb couleur_ Tsimbina.xlsm
    19.4 KB · Affichages: 14

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour Tsimbina, Quincy et Philippe

@Philippe : ;) Je me permets d'ajouter une ligne de code car si le User désire changer une couleur et appuie de nouveau sur le Bouton, les valeurs déjà présentes s'additionnent (ou même s'il appuie une 2ème fois sur le Bouton).
VB:
Option Explicit
Sub Nb_Coul()
Dim CouleurRef As Variant
Dim PlageLigneCouleur As Range, Cel As Range
Dim NbLigneCouleur&, i&, j&, k&

 ActiveSheet.UsedRange.Rows("4:" & ActiveSheet.UsedRange.Rows.Count) = ""


 Set PlageLigneCouleur = Range("A3:A" & Rows.Count).SpecialCells(xlCellTypeBlanks)
For Each Cel In PlageLigneCouleur
    If Cel.Interior.Color <> 16777215 Then NbLigneCouleur = Cel.Row
Next
For k = 4 To NbLigneCouleur
    For j = 7 To 10 'Les colonnes G à J
        CouleurRef = Cells(3, j).Interior.Color
        For i = 1 To 6 'La couleur à tester
            If CouleurRef = Cells(k, i).Interior.Color Then 'La couleur match alors on la compte
                Cells(k, j).Value = Cells(k, j).Value + 1
            End If
        Next i
    Next j
Next k
End Sub

Sub CommandButton1_Click()
Nb_Coul
End Sub

Bonne après-midi à toutes & àtous
@+ Eric c
 

Phil69970

XLDnaute Barbatruc
Bonjour le fil

@Eric C

Tu as raison je me suis tâté pour savoir si je réinitialisais la feuille à chaque fois ou si l'utilisateur effaçait à la mimine la feuille

J'ai même fait une version ou on peut rajouter x colonnes .....
La voici avec ta RAZ de la feuille... ;)

Cela pourrait intéressé quelqu'un....

@Phil69970
 

Pièces jointes

  • Nb couleur V2.xlsm
    21.5 KB · Affichages: 7

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous,

Il faut rappeler au demandeur qu'un changement de couleur (au moyen de la palette - couleur remplissage) ne déclenche aucun évènement de re-calcul de fonction (que la fonction comporte ou non l'instruction Application.Volatile)
Il faut donc "être prudent"...
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 730
Messages
2 081 981
Membres
101 855
dernier inscrit
alexis345