OVH Cloud OVH Cloud

fonction de somme

3 réponses
Avatar
l'inconnu !
Bonjour,

quel est la fonction qui permet de compter le nombre de celule qui on un
remplissage de couleur dans une colonne, mais sans additionner le contenue.
J'ai vue des exemples sur le net, comme "somcool" mais ca ne marche pas !!
Merci d'avance

3 réponses

Avatar
Céline Brien
Salut l'inconnu,
Voir les procédures et le code ci-après.
Paternité : Chris V
Céline
-------------------
Excel Macro : compter les cellules de différentes couleurs
Chris V
Function SomCool(Zne As Range, Couleur As String)
'Application.Volatile True
Select Case Couleur
Case "bleuClair"
Couleur = 37
Case "BleuFoncé"
Couleur = 33
Case "jaune"
Couleur = 36
Case "vert"
Couleur = 4
Case "rose"
Couleur = 38
Case "rouge"
Couleur = 3
End Select
For Each cell In Zne
If cell.Interior.ColorIndex = Couleur Then cvSomme = _
cvSomme + 1
Next
SomCool = cvSomme
End Function
Pour l'utiliser : tu ouvres l'éditeur VBE (alt+F11). Tu repères le
dossier de ton classeur (il peut y avaoir plusieurs dossiers). Clic
droit dessus, ajouter un module (pas un module de classe). une page
blanche s'ouvre. Tu colles tout ce qui est ici entre function et end
function
Dans ton classeur maintenant, si tu veux savoir combien il y a de
cellules avec un fond rouge dans la zone A1:B32, tu écris en C3 si c'est
là que tu veux voir le résultat :
=somcool(A1:B32;"rouge") (ou vert ou jaune suivant ce que tu veux !)
Tu peux aussi faire la somme des valeurs des cellules sur fond rouge.
Regarde sur excelabo la fonction originale de Chris (page formats).

Pour pouvoir utiliser cette fonction, il faut que tu connaisses le code
des couleurs que tu veux sommer. Pour cela je te propose d'utiliser un
autre petite macro :
Sub testcouleurs()
MsgBox (Range("R35").Interior.ColorIndex)
End Sub

"l'inconnu !" a écrit dans le message de news:
e%23QnUXG$
Bonjour,

quel est la fonction qui permet de compter le nombre de celule qui on un
remplissage de couleur dans une colonne, mais sans additionner le
contenue.
J'ai vue des exemples sur le net, comme "somcool" mais ca ne marche pas !!
Merci d'avance




Avatar
JB
Bonjour,

Dans un module: alt+F11/Insertion module

Function CompteCouleurFond(champ As Range, couleurFond)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond Then
temp = temp + 1
End If
Next c
CompteCouleurFond = temp
End Function

Dans le tableur: =CompteCouleurFond(A1:A10;3) pour compter les cellules
en rouge.

Pour Maj immédiate, dans la feuille: Clic-droit onglet/Visualiser code

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

http://cjoint.com/?kFfGoq0h73


JB


Bonjour,

quel est la fonction qui permet de compter le nombre de celule qui on un
remplissage de couleur dans une colonne, mais sans additionner le contenu e.
J'ai vue des exemples sur le net, comme "somcool" mais ca ne marche pas !!
Merci d'avance


Avatar
Modeste
Bonsour® l'inconnu ! avec ferveur ;o))) vous nous disiez :

quel est la fonction qui permet de compter le nombre de celule qui on un
remplissage de couleur dans une colonne, mais sans additionner le contenue.
J'ai vue des exemples sur le net, comme "somcool" mais ca ne marche pas !!


Attention !!!!
un changement de couleur n'est pas détecté par Excel comme un changement de
valeur.
JB le fait remarquer par l'utilisation d'une fonction événementielle déclenchant
un "Application.calculate"...
ce déclenchement peut aussi etre accompli par l'activation de la touche F9.

;o)))
petit aparté :
on peut également connaitre la couleur d'une cellule sans utiliser de macro ...
selectionner la cellule B1
menu Insertion > Noms > Définir : CouleurFond
fait référence à : =Lire.Cellule(63;A1)+(Alea()*0)
Ajouter

Utilisation : cette fonction CouleurFond renvoie l'index couleur de la cellule
placée immédiatement à gauche
exemple :
si le fond de G1 est de couleur Rouge
en H1 on écrira : =Couleurfond
en H1 on lira : 3

Explication :
on utilise ici une ancienne fonction EXCEL 4 : LIRE.CELLULE(no-type ; référence)
on y associe la fonction alea()*0 afin d'effectuer une réactualisation lors d'un
recalcul
comme précisé plus haut il faut qu'il y ai recalcul sur la feuille ( soit
changement d'une valeur, soit F9)

Restrictions :
cette fonction ne prend pas en compte les couleurs issues d'une MEFC
cette fonction ne peut etre inscrite en colonne A


--
--
@+
;o)))