Compter les lignes de couleurs

Bonjour à tous,

Comment compter le nombre de ligne de couleurs différentes appliquées par la mise en forme conditionnelle svp :

Je dois compter le nombre de ligne des 3 couleurs bleun merci pour votre aide ;)

image

Salut,

J'ai lu, j'ai relu, mais j'ai pas tout compris.

Ça peut surement t'aider : https://www.commentcamarche.net/applis-sites/bureautique/1521-compter-ou-additionner-des-cellules-co...

Bonjour,

Peut-être avec la fonction complémentaire NB_COLOR?

Bonjour

Bonjour à tous

Un essai à tester, si j'ai bien compris.

22classeur-v1.xlsm (19.06 Ko)

Bye !

Bonjour Gmb,

Merci beaucoup, C’est exactement ça !! C’est génial :) par contre je n’arrive pas l utiliser avec mon fichier :(

Bonjour à tous,

La difficulté vient du fait que les couleurs soient définies par des MFC....

Voici un essai à partir de tes formules (de MFC)...ça rame un peu....il y a peut-être moyen d'optimiser ?

Option Explicit

Dim plage As Range, cpt1%, cpt2, cpt3%, cpt4%, cpt5%
Dim i&, nblig&

Sub nono()
   With Sheets("TCD")
    Set plage = .Range("A6:Q" & Range("A" & Rows.Count).End(xlUp).Row)
     .Range("T1:T5").ClearContents: Range("T1:T5").NumberFormat = "0%"
     nblig = plage.Rows.Count - 1 'nombre de ligne moins ligne de totaux

     Application.ScreenUpdating = False

    For i = 1 To plage.Rows.Count
        If Application.WorksheetFunction.Count(.Range("B" & i & ":O" & i)) = 5 _
         And Application.WorksheetFunction.CountIf(.Range("B" & i & ":O" & i), "=0") = 0 Then
          cpt1 = cpt1 + 1  '4 mois remplis
        ElseIf Application.WorksheetFunction.Count(.Range("B" & i & ":O" & i)) = 7 _
         And Application.WorksheetFunction.CountIf(.Range("B" & i & ":O" & i), "=0") = 0 Then
          cpt2 = cpt2 + 1 '6 mois remplis
        ElseIf Application.WorksheetFunction.Count(.Range("B" & i & ":O" & i)) = 13 _
         And Application.WorksheetFunction.CountIf(.Range("B" & i & ":O" & i), "=0") = 0 Then
          cpt3 = cpt3 + 1 '12 mois remplis
        ElseIf Application.WorksheetFunction.CountA(.Range("L" & i & ":O" & i)) = 0 Then
          cpt4 = cpt4 + 1 'pas venu depuis 3 derniers mois
        ElseIf Application.WorksheetFunction.Sum(.Range("B" & i & ":D" & i)) > 0 And _
         Application.WorksheetFunction.Sum(.Range("E" & i & ":G" & i)) > 0 And _
         Application.WorksheetFunction.Sum(.Range("H" & i & ":J" & i)) > 0 And _
         Application.WorksheetFunction.Sum(.Range("L" & i & ":N" & i)) = 0 And _
         .Range("K" & i) >= 7 Then
          cpt5 = cpt5 + 1 'patient à rappeler
        End If
    Next i
        .Range("T1") = cpt1 / nblig: cpt1 = 0
        .Range("T2") = cpt2 / nblig: cpt2 = 0
        .Range("T3") = cpt3 / nblig: cpt3 = 0
        .Range("T4") = cpt4 / nblig: cpt4 = 0
        .Range("T5") = cpt5 / nblig: cpt5 = 0
    Set plage = Nothing
   End With
End Sub
5brunotahiti.zip (976.10 Ko)
image


Cordialement,

Hello Xorsankukai, whaoo ! C’est génial ce que tu as fais, Merci beaucoup je teste lundi merci encore !

Bonjour,
J'ai pu faire la même chose que Bruno avec les formules complémentaires mais le traitement est aussi long dès qu'on modifie quelque chose. Je ne sais pas si cela est possible mais peut-être qu'avec un tableau en VBA ça pourrait drastiquement diminuer le temps de traitement. Je ne suis pas du tout spécialiste dans ce domaine.

Bonjour,

Je me suis lancé dans un tableau VBA en suivant le cour VBA d'excel-pratique mais j'ai l'impression que la vitesse de traitement n'a pas beaucoup évolué. Si un pationné des tableaux pouvait me corriger ce code j'en serai très reconnaissant.

Re,

J'ai modifié mon code ça va quand même plus vite.

Hello fcyspm30,

je viens de tester ta dernière version c’est très bien et rapide par contre dès que je mets mes données par changer la source de données ça ne fonctionne plus… Aussi j’ai essayé de copier coller mes données puis actualiser, ça fonctionne mieux mais dans ce cas seule une partie de ma base de données est prise en compte les 2000 premières lignes par exemple alors que ma base en compte 38 000, je pense que cela viens du fait que j’avais essayé de réduire le fichier d original de 3,3 mega à 1 mega pour l uploader sur le forum, une idée de comment cela peut fonctionner avec ma base svp ? Merci

C'est curieux car le code peut travailler sur un tableau évolutif. Oups! je viens de m'apercevoir qu'il a un prob mon dernier code

Je remarque que ma mise en forme conditionnelle saute lorsque je maj les données, est il possible de la bloquer ?

Bonjour Brunotahiti, fcyspm30, le forum,

Un essai (non finalisé) avec l'utilisation d'une variable tableau...macro "test"

Les 2 derniers résultats sont faux, pas le temps de corriger, je dois aller bosser.....

A suivre..................

Cordialement,

Bonjour

Oui effectivement il y a une petite erreur pour les patient à rappeler.

'=ET(SOMME($B6:$D6)>0;SOMME($E6:$G6)>0;SOMME($H6:$J6)>0;$K4>=7;SOMME($L6:$N6)=0)
        If (tb(i, 2) + tb(i, 3) + tb(i, 4)) > 0 And (tb(i, 5) + tb(i, 6) + tb(i, 7)) > 0 And _
         (tb(i, 8) + tb(i, 9) + tb(i, 11)) > 0 And (tb(i, 12) + tb(i, 13) + tb(i, 14)) > 0 And _
         tb(i, 10) >= 7 Then
          cpt5 = cpt5 + 1 '......................................................patient à rappeler
        End If                                                                   '===> résultat FAUX
    Next i

Dans cette partie de code il faudrait remplacer tb(i,11) par tb(i,10).

Pour les trois derniers mois les patients en bleu pâle semblent être pris en compte. Il ne me semble pas qu'il y ait une erreur dans le code.

Re

Je me suis permis de rectifier un petit peu le code et ça semble fonctionner.

Hello à tous !

Comment puis je installer la macro sur mon fichier original pour tester svp ? Merci

Il faut creer un module et faire un copier coller de la macro du fichier test vers le module créé de votre fichier. Ensuite créer un bouton de mis à jour et lui affecter la macro créée sur votre fichier.

Bonjour,

Ok j’ai compris merci ;)

J’ai testé les 3 macros dans le fichier que tu as partagé chez moi voici ce que ça donne :

Chez moi j’ai l’impression qu’il n’y a que le calcul de la sélection en jaune qui fonctionne.

Bouton 5 (macro exemple): 50% de lignes jaune pour les autres ca ne bouge pas

Bouton 6 (macro nono lol) 49% de lignes jaune pour les autres couleurs ca ne bouge pas

Bouton 7 (macro test) 45% de lignes jaunes pour les autres ca ne bouge pas.

Merci à vous tous, on y est presque :)

364aa86a 56c4 41cd 9b8d 4d25a41873f8

Re,

Si la structure du fichier original est la même que les tableaux de tests il n'y a aucune raison que cela ne fonctionne pas. Le code prenant en compte les numéros des couleurs peut ne pas fonctionner si les couleurs du fichier original sont légèrement différentes. Il faut que les codes correspondent parfaitement. Sans la structure ou les couleurs du fichier original il me semble difficile d'aboutir à un résultat concret.

Rechercher des sujets similaires à "compter lignes couleurs"