Compter les cellules de couleur

Bonjour,

Nouveau sur ce forum, j'ai essayé de retranscrire du V.B. sur mon fichier et je suis confronté à 2 problèmes :

1/ comment compléter ce "nbcoul" si je veux additionner plusieurs couleurs (rouge, jaune, vert...)

Function NbCoul(Zne As Range, Couleur As String)
Application.Volatile True
For Each cell In Zne
If cell.Interior.ColorIndex = 3 Then NbCoul = NbCoul + 1
NbCoul = NbCoul
End Function '[/i]2/ Comme conseillé sur plusieurs exemples j'ai complété sélectionchange :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub

Mais à l'ouverture du fichier après avoir activé les macros la fonction copier/coller ne marche plus est-ce normal !

Complètement novice en VisualBasic je Tatonnnne ! !

Merci d'avance

Bonsoir

Il faut modifier ta macro

Function NbCoulBis(Zne As Range)
  Application.Volatile True
  For Each cell In Zne
    If cell.Interior.ColorIndex <> xlNone Then NbCoulBis = NbCoulBis + 1
  Next cell
End Function

Pour la perte du copier/coller cela est du au Calculate

Supprimes cette macro

Tes formules personnalisées seront calculées à la modification de la valeur d'une cellule

"MERCI"pour l'info ..... Mais :

Je remplace la macro existante ou j'ajoute celle que tu me donnes ?

J'ai essayé dans les deux cas ça ne marche plus. N'y a-t-il pas des éléments qui restent enregistrés dans le VB.

Dois-je essayer sur un fichier nouveau ?

J'ai l'impréssion de bloquer sur des détails et ça mets les B.....

Bonjour,

Il ne faut utiliser que le code de Banzai et donc supprimer les autres.

Si cela ne fonctionne pas c'est la formule dans ta feuille utilise --> NbCoul

Le code de Banzai utilise NbCoulbis

Soit tu supprimes les "bis" dans le code de Banzai ou tu ajoutes "Bis" dans ta formule sur ta feuille

Juste en dessous de "Function....", rajoute aussi --> DIM Cell as Range

Amicalement

Merci DAN !

Décidemment !!!

Je joins un fichier si on peut m'indiquer où ça coince cela me permettra de mieux dormir

191comptecouleur.zip (11.70 Ko)

Bonjour à tous

Ici quelquechose que j'ai dans ma boite à outils.

Attention le changement de couleur ne provoque pas le recalcul de la feuille.

ici le calcul sera fait à l'activation de la feuille, mais tout est modifiable

252coul.zip (10.17 Ko)

Bonjour

Si ton code ne fonctionne pas c'est que tu utilises une mauvaise syntaxe

Comme tu ne veux compter les cellules avec n'importe quelle couleur

il faut utiliser simplement

=NbCoul(C5:D13)

Si tu veux compter les cellules avec une certaine couleur

Il faut reprendre ta première macro

Function NbCoulParCouleur(Zne As Range, Couleur As Integer)
Dim Cell As Range
  Application.Volatile True
  For Each Cell In Zne
    If Cell.Interior.ColorIndex = Couleur Then NbCoulParCouleur = NbCoulParCouleur + 1
  Next Cell
End Function

Et dans ce cas tu utilises

=NbCoulParCouleur(C5:D13;6)

Attention le code n'est pas identique dans les deux cas

Bonne journée

Bonjour

Pour ton cas précis, utilise ce code

Function NbCoul(Zne As Range, Couleur As String)
Application.Volatile True

Select Case Couleur

Case "rouge"
Couleur = 3

Case "jaune"
Couleur = 6
'On peut en créer autant que l'on veut

End Select

For Each cell In Zne
If cell.Interior.ColorIndex = Couleur Then NbCoul = NbCoul + 1

Next
NbCoul = NbCoul
End Function

Amicalement

Nad

Yess ! ça marche ! !

Merci à tous, j'ai maintenant plusieurs options possibles pour arriver à mes fins.....

Rechercher des sujets similaires à "compter couleur"