Compter le nombre de cellule correspondant à 3 couleurs dans un tableau (1)

  • Initiateur de la discussion JFP
  • Date de début
J

JFP

Guest
Oh la la !

Bonjour à toutes et à tous,


Bon, je me suis un peu mélangé les pédales dans mon (mes) messages : le 1er était donc le suivant :

J'ai découvert ce site il y a 1 semaine et j'ai profité de mes congés (et du temps pas terrible chez moi en Bretagne) pour m'initier.

J'ai donc utilisé plusieurs de vos PJ et des fils pour tenter une petite application (PJ dans le message 2) dont je suis très fier ! En effet, partant de zéro, grace à vous je vais pouvoir impressioner mes collègues de travail en rentrant !

Ceci étant, je bute sur un problème : je souhaiterais faire les totaux de chaque couleur par colonne afin de faire, ensuite, des camemberts par critères.

J'ai bien trouvé sur le forum des aides mais elles impliquaient d'appliquer un n° à chaque cellule coloriée or j'ai des couleurs (le vert) qui peut déjà comprendre du texte...

Là, je suis bloqué et désespéré (bon, n'exagérons pas trop !)

Merci à qui pourra me porter assistance. Un grand merci également à tous car je crois qu'on peut très rapidement évoluer grace à vous !

A toutes fins utiles, j'ai joint mon tableau sur le message n°2.
J'attends vos remarques, suggestions, critiques , apports...

Encore merci et kenavo

JFP de Kemper (Pen ar bed)
 
S

sousou

Guest
Ce code compte le nombre de cellule ayant la même couleur et par couleur
sur la selection, Cela devrait t'aider.

Ce n'est peut être pas trop clair, mais poses des questions!

Sub coul()
ReDim tablecouleur(1, 1)
For Each i In Selection

c = i.Interior.ColorIndex
'test si couleur existe"
flag = 0
For n = 0 To UBound(tablecouleur, 2)
If c = tablecouleur(1, n) Then
'Si elle existe ont incrémente les compteurs
flag = 1
tablecouleur(0, n) = tablecouleur(0, n) + 1
End If
Next
'Si flag= 0 elle n'existe pas et ont augmente la taille de la table
If flag = 0 Then
ReDim Preserve tablecouleur(1, UBound(tablecouleur, 2) + 1)
tablecouleur(1, UBound(tablecouleur, 2)) = c
tablecouleur(0, UBound(tablecouleur, 2)) = 1
End If
Next

For n = 2 To UBound(tablecouleur, 2)
MsgBox tablecouleur(0, n) & " / " & tablecouleur(1, n)
Next
End Sub
 
J

JFP

Guest
Merci à toi,

j'ai puisé dans les réponses de Mytå pour mon tableau mais je comptes bien étudier ta solution : je suis en phase d'apprentissage et toutes les leçons sont bonnes à prendre !

Bonne journée et à +

JFP
 

Discussions similaires

Statistiques des forums

Discussions
312 160
Messages
2 085 841
Membres
103 002
dernier inscrit
LERUS