Posez votre question Signaler

Nombre de cellules selon leur couleurs [Résolu]

nanouz - Dernière réponse le 13 mai 2015 à 16:35
Bonjour,
J'aimerais créer une formule sur Excel qui me permette de calculer le nombre de cellule rouges, vertes et grises non vides.
Pour calculer le nombre de cellules non vide j'ai utilisé la fonction NBVAL qui fonctionne très bien mais pour calculer le nombre de cellules non vide en fonction de leur couleur je ne sais pas comment faire.
Pouvez vous m'aider ?
Lire la suite 
Réponse
+12
moins plus
Re le forum

Code à coller dans un module

Function NbreCellulesCouleur(Plage As Range, Couleur As Byte) As Long
'Compter le nombre de cellules d'une couleur donnée dans une plage donnée
'Plage: plage de cellules à inspecter
'Couleur: valeur de la couleur cherchée

Application.Volatile

Dim Cellule As Range

For Each Cellule In Plage
    If Cellule.Interior.ColorIndex = Couleur And Not IsEmpty(Cellule) Then
        NbreCellulesCouleur = NbreCellulesCouleur + 1
    End If
Next Cellule

End Function

Mode d'utilisation de la formule
=NbreCellulesCouleur(B4:B8;3)

Tableau des couleurs : ColorIndex

Mytå
Tri- 12 févr. 2015 à 20:04
Bonjour,

J'ai une question qui pourrait parraître bête mais je ne suis pas capable de rentrer ma plage de donné dans ton code Myta? Quelqu'un pourrait m'aider
Répondre
Mytå 2989Messages postés mardi 20 janvier 2009Date d'inscription ContributeurStatut 9 juillet 2015 Dernière intervention - 12 févr. 2015 à 20:29
Re le Forum

Ou est ton problème . . .
=NbreCellulesCouleur(B4:B8;3)


Mytå
Répondre
Tri- 13 févr. 2015 à 21:56
Je viens de comprendre! Désolé My Bad!
Répondre
Steve- 13 mai 2015 à 11:50
Cela s'aplik t'il si la mise en forme est conditionelle?
Répondre
Mytå 2989Messages postés mardi 20 janvier 2009Date d'inscription ContributeurStatut 9 juillet 2015 Dernière intervention - 13 mai 2015 à 16:35
Salut le Forum

Ne fonctionne pas pour les couleurs découlant d'une MFC.

Mytå
Répondre
Ajouter un commentaire
Réponse
+3
moins plus
re

voir le fichier joint

http://www.cijoint.fr/cjlink.php?file=cj201101/cijAiWMNqg.xls

pour voir le code
clic-droit sur l'onglet de la feuille-visualiser le code
dans Feuil1 tu as les codes des deux boutons
dans Module 1 le code de Myta et (voir RQ2)

1. Clic sur Table code pour avoir ta table à toi
2. Selectionner une cellule puis Clic sur couleur cellule pour avoir son code couleur

RQ1. la creation d'un bouton n'est pas trop compliquée
- Affichage-Boites a outils controles
- le petit triangle permet de passer du mode creation au mode execution
- passer en mode creation (le petit triangle)
- choisir le bouton et le mettre dans la feuille
- clic-droit sur le bouton pour voir/modifier ses proprietes
( caption est le texte affiché)
- clic-clic-gauche permet de passer dans l'editeur VBA
- quand c'est fini
- repasser en mode execution (le petit triangle)
- corriger les erreurs !!!

RQ2.Pour completer ton fichier, dans le module où tu as mis le code de Myta, tu inseres le code

Sub CodeCouleur()
Dim c As Long
  c = Selection.Interior.ColorIndex
  MsgBox ("code couleur : " & c)
End Sub


puis Outils-Macros-Choisir CodeCouleur-Options et affecter un raccourci clavier (ctrl+k par exemple) a la macro

dans la feuille- selectionner une cellule colorée puis ctrl k pour avoir son code couleur

bonne suite
Ajouter un commentaire
Réponse
+0
moins plus
Salut le forum

Tes couleurs proviennent-elles d'une mise en forme conditionnelle ?

Mytå
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Non car j'ai plusieurs paramètres à prendre en compte.
L'utilisateur peut saisir ce qu'il veut dans la cellule il choisi ensuite une couleur (sur 3 couleurs disponibles) qui lui permet de définir à quel problème correspond ce qu'il a mis dans la cellule.

Je vais ensuite faire 3 colonnes de résultats :
- une pour les cellules non vides vertes
- une pour les cellules non vides rouges
- une pour les cellules non vides grises.

Il m'est donc impossible de faire une mise en forme conditionnelle.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Merci j'ai réussi à intégrer le module mais est ce que je dois intégrer l'index des couleurs quelque part ?

Car pour l'instant ca ne fonctionne pas
pijaku 11204Messages postés jeudi 15 mai 2008Date d'inscription ContributeurStatut 31 juillet 2015 Dernière intervention - 31 janv. 2011 à 11:59
Non il ne faut rien codifier du tout.
Une fois le code inséré dans un module, c'est Excel qui fais tout, tout seul. A toi de lui indiquer : la plage et l'indice correspondant à la couleur.
Ouvre le tableau des couleurs de Myta.
Si tu veux compter tes cellules noires : indice 1, ex : =NbreCellulesCouleur(A1:A10;1)
Si tu veux compter tes cellules "blanches" : indice 2, ex : =NbreCellulesCouleur(A1:A10;2)
Si tu veux compter tes cellules rouges : indice 3, ex : =NbreCellulesCouleur(A1:A10;3)
Ok???
Répondre
nanouz- 31 janv. 2011 à 12:11
Bon alors j'ai compris !
en fait le bouton me servait juste a identifier le code de ma couleur... ca c'est fait.

ca y est !!!! ca marche !! MERCI !!

Juste un truc mais c'est peut etre normal ... le calcul n'est pas instantané, il y a un petit temps entre le moment ou je mets la couleur et le moment ou ca le prend en compte dans le calcul.
c'est normal ?
Répondre
pijaku 11204Messages postés jeudi 15 mai 2008Date d'inscription ContributeurStatut 31 juillet 2015 Dernière intervention - 31 janv. 2011 à 12:32
Oui, c'est tout à fait normal. Excel calcule automatiquement les formules sur ces feuilles toutes les ??? secondes. Pour lancer un recalcul manuellement (attention la procédure est complexe...) : appuyez sur F9...
Répondre
MissJulia 1Messages postés jeudi 8 août 2013Date d'inscription 8 août 2013 Dernière intervention - 8 août 2013 à 17:59
Bonjour,

Je m'intègre à votre conversation, longtemps après mais vous êtes de ceux ayant le mieux compris mon problème. Dans toute la mise en marche pour faire fonctionner les cellules car pour l'instant je n'ai que #NOM?. Par contre, la seule chose que je ne sais pas comment faire c'est ouvrir le tableau des couleurs de Myta. Ça doit être pas mal niais comme question, mais je ne la comprends tout simplement pas!

Merci de vos commentaires si possible...
Répondre
ccm81 5579Messages postés lundi 18 octobre 2010Date d'inscription 1 août 2015 Dernière intervention - 9 août 2013 à 11:44
Pour créer un tableau des couleurs disponibles
http://cjoint.com/?3HjlKjEoPDB

Bonne journée
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

En fait je disais "Merci j'ai réussi à intégrer le module mais est ce que je dois intégrer l'index des couleurs quelque part ?"
Car la formule est bien reconnue par Excel (je n'ai pas de message d'erreur) mais quelque soit la couleur que je mets il ne la prend pas en compte.

Donc je me disais que je devais peut etre rentrer la table des couleurs quelque part.

Peux tu m'aider ?
Ajouter un commentaire
Réponse
+0
moins plus
bonjour

pour te faire une table des codes couleurs de la palette de ton systeme
tu mets un bouton dans une feuille et tu y affectes le code (excel 2003 chez moi permet 56 couleurs)

Private Sub CommandButton2_Click()
Dim i as long
  For i = 1 To 56
    Range("A" & i).Value = i
    Range("A" & i).Interior.ColorIndex = i
  Next i
End Sub


pour recuperer le code couleur d'une cellule (deja colorée) un autre bouton

Private Sub CommandButton1_Click()
Dim c As Long
  c = Selection.Interior.ColorIndex
  MsgBox ("code couleur : " & c)
End Sub


il ne te restera plus q'à continuer avec le code de Myta

bonne suite
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Merci mais la ca devient trop complexe pour moi ...
comment je fais pour intégrer un bouton ?

Et une fois que j'aurai coloré ma cellule comment je fais pour que le bouton que je crée récupère sa couleur ?
Ajouter un commentaire
Réponse
+0
moins plus
Re le forum

Je vois que la cavalerie est débarquée :)

Pour facilité la tâche à Nanouz, la valeur pour la couleur est
récupérée depuis une cellule.

Function NbreCellulesCouleur(Plage As Range, Couleur As Range) As Long 
'Compter le nombre de cellules d'une couleur donnée dans une plage donnée 
'Plage: plage de cellules à inspecter 
'Couleur: cellule de la couleur cherchée 

Application.Volatile 

Dim Cellule As Range 

For Each Cellule In Plage 
    If Cellule.Interior.ColorIndex = Couleur.Interior.ColorIndex And Not IsEmpty(Cellule) Then 
        NbreCellulesCouleur = NbreCellulesCouleur + 1 
    End If 
Next Cellule 

End Function 

Mode d'utilisation de la formule
=NbreCellulesCouleur(B4:B8;C3)

Nanouz : Car la formule est bien reconnue par Excel (je n'ai pas de message d'erreur) mais quelque soit la couleur que je mets il ne la prend pas en compte. 

Un changement de couleur de cellule ne relance pas la macro, il faut faire F9


Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
L'urgent est fait, l'impossible est en cours et pour les miracles; prévoir un délai.
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
cyrille- 26 août 2011 à 14:31
Bonjour,

C'est exactement ce que je veux mais il me marque #NOM?

Que dois-je faire ???
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
Merci à tous (toutes) vous êtes trop forts !!
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir tout le monde,


Je voudrais s'il vous plait savoir maintenant s'il y a un moyen de calculer les chiffres qui se trouve dans ces cases colorées.

Exemple: j'ai deux cases en rouge avec chacune le chiffre 5 et une case en jaune le chiffre 5 aussi

=nbcellcouleur(G9:I9;3) == me définit combien j'ai de cases en rouge, dans cet exemple c'est deux, mais je voudrais qu'elle me calcul aussi le chiffre, mais qui correspond à la couleur, dans cet exemple, il doit me retrouver 10 et non 15 s'il vous plait.

Merci beaucoup par avance.
pijaku 11204Messages postés jeudi 15 mai 2008Date d'inscription ModérateurStatut 31 juillet 2015 Dernière intervention - 20 déc. 2014 à 10:50
Bonjour,

Suffit d'additionner la valeur des cellules au lieu de les compter :

Function SommeCellulesCouleur(Plage As Range, Couleur As Range) As Long 
'Compter le nombre de cellules d'une couleur donnée dans une plage donnée 
'Plage: plage de cellules à inspecter 
'Couleur: cellule de la couleur cherchée 

Application.Volatile 

Dim Cellule As Range 

For Each Cellule In Plage 
    If Cellule.Interior.ColorIndex = Couleur.Interior.ColorIndex And Not IsEmpty(Cellule) Then 
        SommeCellulesCouleur = SommeCellulesCouleur + Cellule.Value
    End If 
Next Cellule 

End Function


Et si tu veux un résultat décimal :

Function SommeCellulesCouleur(Plage As Range, Couleur As Range) As Double
'Compter le nombre de cellules d'une couleur donnée dans une plage donnée 
'Plage: plage de cellules à inspecter 
'Couleur: cellule de la couleur cherchée 

Application.Volatile 

Dim Cellule As Range 

For Each Cellule In Plage 
    If Cellule.Interior.ColorIndex = Couleur.Interior.ColorIndex And Not IsEmpty(Cellule) Then 
        SommeCellulesCouleur = SommeCellulesCouleur + Cellule.Value
    End If 
Next Cellule 

End Function
Répondre
arda1 1Messages postés mercredi 24 décembre 2014Date d'inscription 24 décembre 2014 Dernière intervention - 24 déc. 2014 à 10:26
Bonjour, je voudrais savoir comment je peut faire pour que la fonction soit instantanée c'est-a-dire que des que je rajoute une cellules avec une case rouge la fonction me recalcule le nombre de case rouge au total. et pour avoir plusieurs plage comment puis-je faire ?
Répondre
Ajouter un commentaire
Ce document intitulé «  nombre de cellules selon leur couleurs  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.