Compter les cellules 2 couleur + les reporter

elima -  
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Pouvez-vous m'aider sur une programmation?
Cela fait un certain temps que je n'ai pas utilisé VBA.

J'aimerais compter le nombre de cellules colorées en rouge ou toute autre couleur.
Ensuite j'aimerais faire en sorte que ce soit fait pour toutes les feuilles d'un fichier.
Enfin j'aimerais reporter le résultat pour chaque couleur dans un tableau nouveau dans un onglet nouveau du fichier.

je devrais alors écrire:

option base 1
sélectionner un workbook
puis faire défiler toutes les worksheets
peut-être faut-il faire une boucle for each worksheet
compter les cellules (avec un if pour la couleur?) cells.count?
construire un nouveau tableau dans une nouvelle feuille
reporter les résultats print?

j'aimerais aussi réutiliser ce module pour tout fichier.
Pardon pour mon failble niveau.

Merci à vous!
A voir également:

1 réponse

Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
Salut,

Plusieurs possibilités, reste à savoir exactement ce que tu veux et comment l'exploiter

on peut écrire un code qui te permette de fixer dans le code l'indes couleur, ou se servir d'une cellule de référence dans laquelle on saisi l'index couleur ou simplement on colorise la cellule de la couleur à compter etc ...
il est possible d'écrire une macro qui démarre avec un bouton une fonction personnalisée ou l'automatiser en plaçant le code dans les propriétés de la feuille ce qui me semble plus judicieux

un exemple, colles ce code dans les propriétés de la feuille concernée, nommes la plage à contrôler pour mon exemple tablo et colorise la cellule D1 tu auras le total en E1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
Dim montotal As Double
Application.Volatile True
For Each c In [tablo]
If c.Interior.ColorIndex = [D1].Interior.ColorIndex Then
montotal = montotal + 1
End If
Next
[E1] = montotal
End Sub
0