Compte couleur automatisé

  • Initiateur de la discussion Initiateur de la discussion Lleytt
  • 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 !

Lleytt

XLDnaute Nouveau
Bonjour,

Il y a 1 semaine vous m'aviez aidé avec une macro qui déterminait le nombre de cases colorées dans un tableau.
J'aimerais savoir s'il était possible d'automatiser cette recherche et l'intégrer dans un autre tableau. Je m'explique, sur le fichier ci-joint:
Il y a le tableau de base avec des cases colorées.
En dessous, 2 tableaux que je remplis jusqu'à maintenant manuellement grâce à la macro comptecouleur. Cependant, Est-ce que les 2ème et 3ème tableaux pourraient être remplis automatiquement sans passer par la case remplissage manuel de ligne et colonne?

Merci de votre aide précieuse, je suis novice en informatique/Excel...

Lleytt
 

Pièces jointes

Re : Compte couleur automatisé

Bonjour,

En effet je l'avais enregistréé sans la macro... désolé. Voici le bon fichier.
J'aimerais que ce système fonctionne aussi sur d'autres figurations de tableaux (3 couleurs dans mon tableau ou plus) ... je ne sais pas si c'est possible.
 

Pièces jointes

Re : Compte couleur automatisé

Bonjour Lleytt, Roger,

Cela n'a rien à voir avec le fil précédent 🙄

Pour les 2 tableaux il s'agit d'un simple comptage de couleur sur une plage avec cette fonction :

Code:
Function NCoul(ref As Range, r As Range)
Application.Volatile
Dim coul&
coul = ref.Interior.Color
For Each r In r
  If r.Interior.Color = coul Then NCoul = NCoul + 1
Next
End Function
Fichier joint.

PS1 : je vous laisse masquer les valeurs zéro...

PS2 : la couleur en A44 n'était pas la bonne...

A+
 

Pièces jointes

Re : Compte couleur automatisé

Re,

Si l'on veut une seule formule pour le tableau B37:H40 utiliser :

Code:
Function NCoul(ref As Range, r As Range, Optional nom$ = "")
Application.Volatile
Dim coul&
If nom <> "" Then Set r = Intersect(r, Range("_" & nom).MergeArea.EntireRow)
coul = ref.Interior.Color
For Each r In r
  If r.Interior.Color = coul Then NCoul = NCoul + 1
Next
End Function
Et nommez comme je l'ai fait les cellules fusionnées de la plage A2:A32.

Edit : pour grouper les noms il vaut mieux mettre le tiret "_" en tête.

Fichier (2).

A+
 

Pièces jointes

Dernière édition:
Re : Compte couleur automatisé

Bonsoir Lleytt, le forum,

La fonction avec 2 arguments supplémentaires, plus besoin de noms définis :

Code:
Function NCoul(ref As Range, r As Range, titre, zonetitre As Range, sens As Byte)
'sens=0 lignes, sens=1 colonnes
Application.Volatile
Dim coul&
With zonetitre(Application.Match(titre, zonetitre, 0)).MergeArea
  Set r = Intersect(r, IIf(sens, .EntireColumn, .EntireRow))
End With
coul = ref.Interior.Color
For Each r In r
  If r.Interior.Color = coul Then NCoul = NCoul + 1
Next
End Function
Fichier (3).

Attention les années en lignes 1 et 43 doivent être de même nature, nombres ou textes...

Bonne fin de soirée.
 

Pièces jointes

- 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
Retour