• Initiateur de la discussion Initiateur de la discussion argaz01
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

argaz01

Guest
Bonjour tout le monde,

J'aimerais compter le nombre de cellules d'une colonne qui ont une valeur supérieure à un certain % et j'aimerais aussi pouvoir compter le nombre de cellules d'une colonne qui ont une certaine couleur. Est-ce possible, j'arrive à compter le nombre de cellules contenant un mot spécifique mais pas des couleurs ou des %. Merci d'avance pour votre aide

Cordialement
 
Re : Fonction NB.SI

Après moulte tentatives, le résultat ressort à 121 !!! alors que je n'ai en réalité que 5 cellules de couleur rouge!

Voici le code:
Code:
x = 0
For Each c In [P8:P128] 'plage a definir
c.Activate
For Each FC In ActiveCell.FormatConditions
  If FC.Type = xlCellValue Then
    F1 = Evaluate(FC.Formula1)
    Select Case FC.Operator
      Case xlBetween: If ActiveCell >= F1 _
        And ActiveCell <= Evaluate(FC.Formula2) Then Exit For
      Case xlEqual: If ActiveCell = F1 Then Exit For
      Case xlGreater: If ActiveCell > F1 Then Exit For
      Case xlGreaterEqual: If ActiveCell >= F1 Then Exit For
      Case xlLess: If ActiveCell < F1 Then Exit For
      Case xlLessEqual: If ActiveCell <= F1 Then Exit For
      Case xlNotBetween: If ActiveCell < F1 _
        Or ActiveCell > Evaluate(FC.Formula2) Then Exit For
      Case xlNotEqual: If ActiveCell <> F1 Then Exit For
    End Select
  Else
    If Evaluate(FC.Formula1) Then Exit For
  End If
Next FC
If Not FC Is Nothing Then
If FC.Interior.ColorIndex = 3 Then x = x + 1  'index couleur= 3 rouge
End If
Next c
[R143] = x 'variable a utiliser
End Sub


Cordialement
 
Re : Fonction NB.SI

Bonjour à tous,


Un essai avec le code suivant:

Code:
Function Compte_Couleurs(cell_range As Range, color_cell_index) As Integer
Dim rCell As Range
Dim cell_count As Integer
cell_count = 0
   For Each rCell In cell_range
    If rCell.Interior.ColorIndex = color_cell_index Then
         cell_count = cell_count + 1
    End If
   Next rCell
Application.Volatile
   Compte_Couleurs = cell_count
End Function

Function Color_index(cell_range As Range) As Integer
  Color_index = cell_range.Interior.ColorIndex
End Function

Ce code (Fonction personnalisée) doit être enregistré dans un module... Son application se fait de la façon suivante (Dans une cellule quelconque choisie):

Code:
= Compte_Couleurs(Plage;code couleur)

Pour la couleur "rouge" le code s'est : 3... Et pour ton exemple ça serait:

Code:
= Compte_Couleurs(P8:P128;3)

NB: Un tout petit souci avec cette fonction, à chaque changement de couleur des cellules de la plage, il faut "Valider de nouveau cette fonction" (par exemple en appuyant sur la touche F9 ou en changeant le contenu d'une cellule...).


Cordialement
 
Dernière édition:
Re : Fonction NB.SI

Bonjour hbenalia,

En fait, compter les cellules en rouge ou les cellules répondant à la mise en forme conditionnelle revient au même, donc si c'est possible de faire avec la condition et bien tant mieux aussi.
Ci-joint un bout de mon tableau pour bien illustrer la question.

La colonne P qui se met en rouge correspond en fait à un ratio de dispersion (c'est-à-dire le montant engagé sur un produit financier divisé par le montant total de mon portefeuille) et la colonne N correspond à la volatilité du produit financier, et si la volatilité dépasse un certain seuil, le ratio de dispersion ne doit pas exécer un certain montant, d'où les cellules en rouge).


PS: si je ne répond de suite c'est que j'ai des soucis avec ma connexion
 

Pièces jointes

Re : Fonction NB.SI

Bonjour tout le monde,

Les cellules en rouges sont les cellules qui répondent à ma condition, donc compter les cellules colorées ou les cellules répondant à ladite condition revient au même.

Merci pour vos efforts

Cordialment
 
Re : Fonction NB.SI

Re, Argaz01

Dans TOUS mes tableaux excel, je me sers toujours de la MFC pour colorer mes cellules, (rouge pour dépassement, jaune = Attention, vert = OK ; mais chacun est libre de faire comme il veut), cette MFC ne doit, à mon sens ne servir qu'à cela.

Rappelons nous qu'excel est un tableur, si, si
si nous mettons des cellules en une autre couleur, c'est qu'elles répondent à une (ou plusieurs conditions)
A partir de là, on peut très bien compter ce nombre de cellules.
S'il prend un jour à un de tes collègues de changer non plus en rouge mais en mauve, tes macros ne renverront plus le bon résultat, la formule de calcul, si . Elle s'en fout comme de l'an 40 du fond de tes cellules.

C'est la ligne de conduite que j'ai toujours adoptée, ayons aussi à l'esprit qu'une formule de calcul est plus rapide que du VBA

NB: J'ai regardé ton fichier, mais il ne correspond pas aux critères que tu as énnoncé dans ton message de 10:53, hier
 
Re : Fonction NB.SI

J'ai fait exactement comme tu m'a dis sauf que la macro me signale d'abord une erreur en mettant en rouge la ligne : Compte_Couleurs(P8😛128;3) = cell_count et puis me demande de nommer la macro ce qui bien sûr revient à commencer une nouvelle avec sub et en sub!!
Et comme je suis encore novice en vba, je ne vois pas vraiment comment procéder! et puis j'aimerais que le résultat de la macro s'affiche dans la cellule Q143 (par exemple).

Merci d'avance pour votre aide


Cordialemlent
 
Re : Fonction NB.SI

Bonjour le forum,

Pour te dire la vérité, je n'ai pas compris exactement la demande, le fichier joint plus haut ne porte aucune aide, on espère plus de précision sur la question...
Quand même j'ai appliqué le code suggéré dans mon précédent post (Compte_couleurs) à ton fichier, voir PJ...


Cordialement
 

Pièces jointes

Re : Fonction NB.SI

Désolé si je n'arrive pas à vous aider pour résoudre ma question, je suis vraiment débutant dans ce domaine. En fait, je ne sais pas comment appliquer votre code à mon tableau:Quand je modifie la ligne
Code:
Compte_Couleurs = cell_count
par
Code:
Compte_Couleurs(p8:p128;3)
le code bloque (p8:8128 c'est la colonne où j'ai mes cases rouges à compter) et en plus je ne sais pas comment activer le code (Avec F5 cela ouvre une nouvelle macro!).


Merci de faire encore un petit effort, je sais que c'est pas facile avec moi!!

Cordialment
 
Re : Fonction NB.SI

euh,

j'insiste, mais pourquoi absolument une macro ?
si tu nous filais un bout de ton vrai fichier sans données confidentielles, on s'en sortirait mille fois mieux et ton prob aurait trouvé solution ....
Aide toi et XLD t'aidera
 
Dernière édition:
Re : Fonction NB.SI

Bon, j'essaye de faire ça sans VBA avec votre formule que j'ai adapté à mon tableau comme ceci:
Code:
=Compte_Couleurs(DECALER($P$8;;;NBVAL(P:P));3)
mais excel me renvoie une erreur #nom:la formule comporte un nom non reconnu!

pour le fichier c'est exactement comme celui que je vous es envoyé (ci-joint) sauf qu'il est plus long (p8😛128) et quand j'adapte la formule ça me renvoie ladite erreur #nom

Cordialment
 

Pièces jointes

Re : Fonction NB.SI même couleur MFC

Bonjour,

Je reviens encore vers vous dans l'espoir de terouver une solution à ce casse-tête.

J'arrive maintenant à la faire fonctionner (j'avais pas comprisq qu'il fallait associer le code avec la formule dans excel!!!), sauf que le résultat est égal à 0 alors que j'ai 5 cases de couleurs rouge dans ma colonne!!! C'est certainement que la macro ne prend pas en compte les couleurs issues d'une MFC, puis-je faire autrement?

Encore un petit effort les gars et merci

Rappel de la MFC: =OU(ET($N8<2,5%;$P8>5%);ET($N8>2,5%;$N8<5%;$P8>2,5%);ET($N8>5%;$N8<10%;$P8>1%);ET($N8>10%;$P8>0,5%))



Cordialement
 
Dernière modification par un modérateur:
Re : Fonction NB.SI

Bonjour,

tu es bien gentil, mais ton fichier ne comporte aucune MFC, aucune fonction, aucune formule qui met en forme cette MFC, et il n'y a rien dedans à part ce petit tableau en col A et B. et dans ton message ci-dessus, tu parles d'une formule de MFC qui tient compte de valeurs en P8, N8 ...

Quand tu enverras un fichier correct, je continuerai à t'aider, mais là ...
 
Re : Fonction NB.SI

Bonjouir Mutzik,

Ci-joint le lien : Cijoint.fr - Service gratuit de dépôt de fichiers (taille supérieure à la limite retenue par le forum) du fichier complet (j'ai juste effacer le contenu de certaines colonnes pour des raison de confidentialité) avec la MFC.

et merci encore Mutzik pour les coups de main


Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
242
Retour