somme conditionnelle

zarzor

XLDnaute Nouveau
bonjour,
je cherche une fonction qui me peut compter le nombre de cellules de même couleur et qui contiennent le même texte
merci d'avance

Message édité par: zarzor, à: 21/09/2005 14:37

Message édité par: zarzor, à: 21/09/2005 14:39

Message édité par: zarzor, à: 21/09/2005 14:41
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Zarzor, bonjour le forum,

Une fonction, je ne sais pas faire. Mais si une macro te convient, alors je te propose ça à placer dans le composent Worksheet (Feuil1(Feuil1) par exemple) de VBE.

Cette macro se déclenche au clic droit de la souris sur une cellule cible. Telle qu'elle est écrite elle comtpe par rapports aux cellules éditées de l'onglet. Tu devras peut-être adapter à ton cas.


Option Explicit 'oblige à déclarer les variables

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Coul As Integer 'déclare la variable Coul (Couleur de la cible)
Dim Cont As Variant 'déclare la variable Cont (Contenue de la cible)
Dim Cel As Range 'déclare la variable Cel
Dim x As Long 'déclare la variable x

Coul = Target.Interior.ColorIndex 'définit la variable Coul
Cont = Target.Value 'définit la variable Cont
x = 0 'définit la variable x

'boucle sur toutes les cellules éditée de la feuille (plage à adapter à ton cas)
For Each Cel In ActiveSheet.UsedRange
'condition : si la cellule est de la même couleur que la cible
' et le texte et le même que celui de la cible, alors x = x+1 (redéfinit la variable x)
If Cel.Interior.ColorIndex = Coul And Cel.Value = Cont Then x = x + 1
Next Cel 'prochaine cellule de la plage
Cancel = True 'évite le menu contextuel lié au clic du bouton droit
MsgBox 'Il y a ' & x & ' cellules de cette couleur contenant ' & Cont & '.' 'message
End Sub
[file name=Zarzor.zip size=8616]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Zarzor.zip[/file]
 

Pièces jointes

  • Zarzor.zip
    8.4 KB · Affichages: 20

zarzor

XLDnaute Nouveau
bonjour
j'ai récupérer une fonction à laquelle j'ai rajouté un troisième critère
en m'inspirant de ton expemple.
merci pour ton aide


Public Function NB_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range, critere As Range) As Long
Dim Cel As Range
Dim lCpt As Long

Application.Volatile 'permet à la fonction de se recalculer lorsque le classeur se recalcul.
For Each Cel In PlageSomme 'pour chaque cellule de la plage
' si la couleur de fond de la cellule est la même que la couleur de cellule de référence alors le compteur lCpt est incrémenté de 1
If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex And Cel.Value = critere Then lCpt = lCpt + 1
Next
NB_SI_COULEUR = lCpt
End Function
 

Discussions similaires

Statistiques des forums

Discussions
312 236
Messages
2 086 481
Membres
103 232
dernier inscrit
logan035