Compter les lignes par couleur

Bonjour,

J'ai un fichier dans lequel je mets les lignes avec plusieurs couleurs.

Je voudrais savoir combien j'ai de ligne de chaque couleur, une sorte de compteur.

Merci pour votre aide

Cordialement

Bylbo

Bonjour

Tu écris :

J'ai un fichier dans lequel ...

On peut le voir ?

Bye !

Bonjour,

Une piste avec fonction perso :

Function COULEURS(Plage As Range) As Long

    Dim Dico As Object
    Dim Cel As Range

    'permet le caclul de la fonction même si pas la cible
    'car un changement de couleur de fond n'engendre pas le calcul de la fonction
    Application.Volatile

    Set Dico = CreateObject("Scripting.Dictionary")

    For Each Cel In Plage.Rows

        With Cel.Interior

            'évite la couleur de fond standard
            If .Color <> 16777215 Then

                If Not Dico.exists(.Color) Then Dico.Add .Color, .Color

            End If

        End With

    Next Cel

    COULEURS = Dico.Count

End Function

que tu peux utiliser de cette façon dans la feuille Excel :

=COULEURS(A1:F15)

Bonjour,

Une piste avec la nouvelle macro complémentaire :

https://www.excel-pratique.com/fr/fonctions-complementaires/nb-couleur.php

Cordialement,

Bonjour,

Je ne comprends pas trop comment je dois faire exactement.

Je vous joint une partie de fichier pour exemple.

Je voudrais une ligne à la fin qui me dise j'ai x couleur jaune,x couleur bleu etc...

J'ai une liste énorme de personne et au fur et à mesure je l'ai mets en couleur.

Merci de votre aide.

15exemple.xlsx (14.44 Ko)

Bonjour,

Il y a des millions de couleurs (nuances) comment veux tu les différencier les unes des autres pour leur donner un nom ?

Tu pourrais te faire un tableau des noms de couleurs mais déjà avec les 56 couleurs retournées par la propriété ColorIndex il y a plusieurs nuances de chaque couleur. Voici un code te permettant de connaître les 56 couleurs de ColorIndex :

Sub Test()

    Dim I As Integer

    For I = 1 To 56
        Cells(I, 1).Interior.ColorIndex = I
        Cells(I, 2) = I
    Next I

End Sub

Et si j'utilise toujours les même couleurs est ce que sa rend la tache plus facile ?

Car la j'avoue que je comprends pas trop ce que vous dites de faire.

Je suis pas très calé sur excel.

Merci de vos retours en tout cas.

Bonjour,

Comme je te l'ai dis dans mon précédant message, il est difficile de nommer toutes les couleurs mais j'ai essayé de donner un nom aux couleurs de "ColorIndex" (56 noms pas tous faciles à définir !). Pour tester, tu colores avec les couleurs "standards" la plage de A1 à F20 et tu lances la procédure "Test", un message te dira le nom des différentes couleurs utilisées :

Sub test()

    Dim Tbl() 'tableau passé par référence (il sera rempli dans la proc "Couleurs"
    Dim I As Integer
    Dim Texte As String

    Couleurs Range("A1:F20"), Tbl()

    For I = 0 To UBound(Tbl)

        Texte = Texte & Tbl(I) & vbCrLf

    Next I

    MsgBox Texte

End Sub

Sub Couleurs(Plage As Range, TblRetour())

    Dim Dico As Object
    Dim Cel As Range
    Dim El As Variant
    Dim Tblcouleur
    Dim I As Integer

    Set Dico = CreateObject("Scripting.Dictionary")

    Tblcouleur = Array("Noir", "Blanc", "Rouge", "Vert brillant", "Bleu foncé", "Jaune", "Rose", "Bleu turquoise clair", _
                       "Rouge foncé", "Vert", "Bleu foncé", "Marron clair", "Violet", "Bleu-Vert", "Gris -25%", "Gris -50%", _
                       "Lavande foncé", "Mauve clair", "Blanc cassé", "Bleu cyan clair", "Mauve foncé", "Chair", "Bleu ciel", _
                       "Bleu Gris", "Jaune pale", "Fuchia", "Saumon foncé", "Bleu électrique", "Mauve moyen", "Marron foncé", _
                       "Bleu Gris", "Bleu moyen", "Bleu turquoise moyen", "Bleu pâle", "Bleu très pâle", "Jaune clair", _
                       "Bleu moyen", "Saumon", "Lavande", "Brun rose", "Bleu clair", "Vert d 'eau", "Citron Vert", "Bouton d'or", _
                       "Orange clair", "Orange", "Bleu Gris", "Gris -40%", "Bleu-vert foncé", "Vert marin", "Vert foncé", _
                       "Vert olive", "Marron", "Prune", "Indigo", "Gris -80%")

    For Each Cel In Plage

        With Cel.Interior

            'évite la couleur de fond standard
           If .ColorIndex <> -4142 Then

                If Not Dico.exists(.ColorIndex) Then

                    Dico.Add .ColorIndex, Tblcouleur(.ColorIndex - 1)
                End If

            End If

        End With

    Next Cel

    TblRetour() = Dico.Items

End Sub

bonjour,

Quand je copie colle le code dans VB de mon fichier, lorsque je joue la macro une boite de dialogue me donne le nom des couleurs présentent dans mon fichier.

En revanche ça ne me compte pas le nombre de ligne par couleur.

Merci de ton aide.

Rechercher des sujets similaires à "compter lignes couleur"