Calcul cellule couleur

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

ant75

Guest
Bonjour,

J'ai dans un tableau d'une centaine de colonnes et d'une trentaine de lignes plusieures cellules avec un motif de couleur différent (5 couleurs différentes).

J'ai besoin de calculer pour chaque colonne 5 sommes :
- le nombre de cellules de couleur 1
- le nombre de cellules de couleur 2
etc

J'ai trouvé une formule utile sur internet à mettre dans VB/module (alt+F11) :
'----- Début de partie à copier -----
Public Function NBCellsPoliceCouleur(ByVal target As Range, _
ByVal Couleur As Integer) As Integer

Dim Cellule As Range
NBCellsPoliceCouleur = 0
For Each Cellule In target
If Cellule.Font.ColorIndex = Couleur Then 'Teste la couleur de la police
NBCellsPoliceCouleur = NBCellsPoliceCouleur + 1
End If
Next

End Function
'----- Fin de partie à copier -----

Mon gros problème est que cette formule fonctionne que si on rentre dans la cellule où il y a par exemple écrit : =NBCellsPoliceCouleur(A1:10;2) et qu'on clique sur entrée. C'est la seule façon pour que le calcul se fasse. Je ne comprend pas du tout pourquoi se résultat ne se met pas automatiquement à jour lorsque les couleurs dans le tableau changent.

Quelqu'un peut il me proposer une solution svp ?

Peut être que mon explication n'est pas claire, j'ai donc mis mon fichier online : http://cjoint.com/?esmrtCu5iV
Vous verrez, si vous rajouter une cellule de couleur dans le tableau, le résutlat (dans cette zone C40:J43) ne se met pas à jour automatiquement, c'est là tout le problème ^^

Merci d'avance.
 
Dernière modification par un modérateur:
Re : Calcul cellule couleur

bonjour

ajoute la ligne en rouge

Code:
Public Function NBCellsPoliceCouleur(ByVal target As Range, _
ByVal Couleur As Integer) As Integer

Dim Cellule As Range
[COLOR="Red"]application.volatile[/COLOR]
NBCellsPoliceCouleur = 0
For Each Cellule In target
If Cellule.Font.ColorIndex = Couleur Then 'Teste la couleur de la police
NBCellsPoliceCouleur = NBCellsPoliceCouleur + 1
End If
Next

attention, mettre une couleur dans une cellule ne provoque pas le recalcul
taper F9
 
Re : Calcul cellule couleur

Euh.... en fait je crois qu'avec ou sans 'Application.Volatile' je crois que ça ne change rien.

Mon recalcul se fait déjà dans le fichier de base si je copie une cellule de couleur du tableau et la colle dans une autre cellule LOL Par contre ça ne re calcule pas si je vais dans une cellule sans couleur et utilise le pot de peinture pour la colorier.

Grâce à ta solution j'en ai donc trouvé une autre.

En tout cas merci beaucoup. 🙂
 
- 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
223
Réponses
14
Affichages
484
Réponses
7
Affichages
285
Retour