ant75
XLDnaute Junior
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.
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 édition: