Compter cellules de couleurs

Résolu
Bonjour,

Dans ma colonne C j'ai des cellules de couleur jaune sans MFC 'j'aimerais
les compter.
Merci pour votre aide
Crdlt

4 réponses

  1. Contributeur
    Bonjour,

    fonction personnalisée avec 2 paramètres :
    plage : plage à prendre en compte
    couleur : cellule où récupérer la couleur à compter
    Function cellCouleurVide(plage As Range, couleur As Range)
        Dim pl As Range, c As Range, coul As Long
        Application.Volatile
        Set pl = Intersect(plage, Application.Caller.Worksheet.UsedRange)
        If Not pl Is Nothing Then
            coul = couleur.Interior.ColorIndex
            For Each c In pl
                If c = "" And c.Interior.ColorIndex = coul Then cellCouleurVide = cellCouleurVide + 1
            Next c
        End If
    End Function

    Faire F9 pour rafraichir si les couleurs changent.
    Si c'est pour qq milliers de lignes tu dis si c'est trop lent, on fera autrement.
    Eviter d'avoir plusieurs classeurs d'ouverts, ça donne parfois des surprises avec les fonctions personnalisées.
    eric

    En essayant continuellement, on finit par réussir. 
    Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
    En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
    1. Contributeur
      Bonjour.

      Faire Trier par couleur : le nombre de cellules (avec des données) remplies de cette couleur s'affiche dans la barre d'état.
      1. Bonjour

        J'ai trouvé en vba comment les compter ,mais il me faut seulement compter
        les cellules vides.
        Si vous avez une solution je suis preneur.
        Merci pour votre aide
        Cordialement
        1. Contributeur
          Non : je ne sais pas compter des cellules d'une certaine couleur mais non renseignées ...
          Normalement tu devrais y arriver en continuant ta macro.
      2. Bonjour eric

        Merci pour ta réponse
        J'ai un souci n’étant pas trés fort en vba je n'arrive pas a mettre ton code
        en place afin qu'il fonctionne normalement.
        Crdlt
        1. Contributeur
          Bonjour,

          il faut le mettre dans un module standard.
          Ensuite appeler la fonction dans une cellule :
          =cellCouleurVide(C2:C10;E1)

          E1 étant de la couleur à comptabiliser.
          eric
        2. @eriiicMerci beaucoup pour les indications
          Fonctionne super
          autre renseignement si tu peux
          comment mettre le mot "Merci" de C6 à DA6 sur 250 lignes mais une colonne sur 2
          exemple : C6:E6 G6
          Cordialement
        3. Contributeur
          une possibilité parmis d'autres :
              Dim pl As Range, col As Long
              Set pl = [C6].Resize(250)
              For col = 3 To 105 Step 2
                  Set pl = Union(pl, Cells(6, col).Resize(250))
              Next col
              pl.Value = "Merci"

          eric
        4. @eriiicBonjour eric

          Merci superbe
          .Cordialement