XL 2016 Compter des Cellules de couleur avec une condition

QEspinaco

XLDnaute Nouveau
Bonjour, je voudrais faire un comptage de cellules de couleur qui contienne des valeurs.
Par exemple si j'ai 8 cellules rouges noté 1,1,2,2,2,3,3,1 et 3 cellules vertes noté 1,2,2 je voudrais que la fonction me sorte 3 pour le nombre de 1 rouge et 2 pour le nombre de 2 verts.

J'ai réussi à coder une fonction qui me donne le nombre de cellules d'une même couleur mais j'aurais besoin d'être plus précis.

En entrée de la fonction j'aimerais mettre : la plage de données à traiter, la couleur et le nombre à compter pour pouvoir faire pareil pour chaque nombre de chaque couleur.

Si quelqu'un aurait une idée ? Je ne sais pas très bien coder sur Excel...

Voici déjà la fonction pour compter les cellules d'une même couleur :

VB:
Function CountCcolor(range_data As Range, criteria As Range) As Long
    Dim datax As Range
    Dim xcolor As Long
xcolor = criteria.Interior.ColorIndex
For Each datax In range_data
    If datax.Interior.ColorIndex = xcolor Then
        CountCcolor = CountCcolor + 1
    End If
Next datax

End Function

••••ˇˇˇˇ
 

Pièces jointes

  • Test Comptage Couleur.xlsm
    15.4 KB · Affichages: 40
Dernière édition:
Solution
Bonjour,
Peut être comme ça.
Le dernier paramètre de la fonction correspond au nombre 1,2,3 ....
VB:
Function CountCouleur2(range_data As Range, criteria As Range, xNbr As Integer) As Long
    Dim datax As Range
    Dim xcolor As Long
    xcolor = criteria.Interior.ColorIndex
    For Each datax In range_data
        If datax.Interior.ColorIndex = xcolor Then
            If datax.Value = xNbr Then
                 xcpt = xcpt + 1
            End If
        End If
    Next datax
    CountCouleur2 = xcpt
End Function
@+ Lolote83

Lolote83

XLDnaute Barbatruc
Bonjour,
Peut être comme ça.
Le dernier paramètre de la fonction correspond au nombre 1,2,3 ....
VB:
Function CountCouleur2(range_data As Range, criteria As Range, xNbr As Integer) As Long
    Dim datax As Range
    Dim xcolor As Long
    xcolor = criteria.Interior.ColorIndex
    For Each datax In range_data
        If datax.Interior.ColorIndex = xcolor Then
            If datax.Value = xNbr Then
                 xcpt = xcpt + 1
            End If
        End If
    Next datax
    CountCouleur2 = xcpt
End Function
@+ Lolote83
 

Matiiooo

XLDnaute Nouveau
Bonjour,
Merci pour cette solution mais j'ai un problème dans mon cas les données sont sur la première colonne et les cellules de couleurs sont dans le tableau mais je ne peux pas ajouté les données dedans pouvez vous m'aidez ? (c'est les 2 tableaux du bas)
 

Pièces jointes

  • exel pb.xlsm
    31.2 KB · Affichages: 2

Matiiooo

XLDnaute Nouveau
J'ai rencontré un autre problème en utilisant ce programme avec un grand nombre de colonnes et lignes est-ce normal? Pour certains données le programme m'affiche un 0 et pour d'autre il affiche le bon résultat au bout de 10 min.
 

Pièces jointes

  • exel pb 2.xlsx
    109.6 KB · Affichages: 2
Dernière édition:

Lolote83

XLDnaute Barbatruc
Bonjour @Matiiooo .
Voici une version plus rapide.
Cependant, pour quelle fonctionne correctement, j'ai rajouté une colonne B indiquant à quelle catégorie cela correspond.
Un bouton MAJ en feuille 2 donne les résultats
Tu peux rajouter autant de couleurs que tu veux, mais il faut dans ce cas.
Onglet Feuil2
- Tableau RESULTAT : Insérer une nouvelle couleur entre le ROUGE et le ORANGE. Le champs ORANGE doit toujours être en dernier.
- Tableau COULEUR : Rajouter ensuite la couleur dans le tableau des couleurs
- Tableau RESULTAT : Tu peux aussi rajouter aussi de nouvelles catégories

Tiens moi au courant.

@+ Lolote83
 

Pièces jointes

  • Copie de MATIOOO - Couleur-V2.xlsm
    127.6 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T