Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Moyenne de chiffres de la meme couleur

3 réponses
Avatar
globule
Bonjour a tous,

desirant faire une moyenne soit dans une cellule ou colonne, cette moyenne
doit etre realisée uniquement sur des valeurs de la meme couleur.
Exemple
Ligne colonne A B C D
1 10en rouge 5en bleu 5en rouge

et en colonne D je veux faire la moyenne des chiffres uniquement en Rouge).

voila mon petit probleme, j'ai essaye des petites choses avec le
=moyenne(couleur,celluleA1;C1) bref des choses et des choses sans vraiment
resultat desiré.

Merci pour votre aide

3 réponses

Avatar
Daniel.C
Bonjour.
Utilise la fonction ci-dessous. Tu dois préciser le nombre
correspondant à la couleur (255 pour le rouge "standard"). La couleur
prise en compte est la couleur du fond de la cellule, pas celle de la
police :

Function MoyenneCouleur(Couleur As Integer, Plage As Range)
Dim c As Range
For Each c In Plage
If c.Interior.Color = Couleur Then
If IsNumeric(c.Value) Then
ctr = ctr + c.Value
nb = nb + 1
End If
End If
If nb > 0 Then
MoyenneCouleur = ctr / nb
Else: MoyenneCouleur = ""
End If
Next c
End Function

Cordialement.
Daniel

Bonjour a tous,

desirant faire une moyenne soit dans une cellule ou colonne, cette moyenne
doit etre realisée uniquement sur des valeurs de la meme couleur.
Exemple
Ligne colonne A B C D
1 10en rouge 5en bleu 5en rouge

et en colonne D je veux faire la moyenne des chiffres uniquement en Rouge).

voila mon petit probleme, j'ai essaye des petites choses avec le
=moyenne(couleur,celluleA1;C1) bref des choses et des choses sans vraiment
resultat desiré.

Merci pour votre aide


Avatar
FFO
Salut à toi

Je ne pense que tu puisses utiliser une formule pour réagir sur le
format des cellules

Seule solution le code VBA

Cellule A1 et C1 en rouge
Cellule B1 en bleu

Aprés avoir mis ta cellule D1 avec la couleur correspondant à celle
dont tu souhaites la moyenne utilises ce code (rouge pour ton
exemple):

For Each c In Range("A1", "C1")
If c.Interior.ColorIndex = Range("D1").Interior.ColorIndex Then
Total = Total + c
n = n + 1
End If
Next
Range("D1") = Total / n

Le résultat donc en D1

Actualises :

Range("A1", "C1") pour une autre plage de cellules
Range("D1") pour une autre cellule dans laquelle tu souhaites la
moyenne

Fais des essais et dis moi !!!!!!!
Avatar
globule
Merci a vous je vais essayer vos solutions

globule

"FFO" a écrit :

Salut à toi

Je ne pense que tu puisses utiliser une formule pour réagir sur le
format des cellules

Seule solution le code VBA

Cellule A1 et C1 en rouge
Cellule B1 en bleu

Aprés avoir mis ta cellule D1 avec la couleur correspondant à celle
dont tu souhaites la moyenne utilises ce code (rouge pour ton
exemple):

For Each c In Range("A1", "C1")
If c.Interior.ColorIndex = Range("D1").Interior.ColorIndex Then
Total = Total + c
n = n + 1
End If
Next
Range("D1") = Total / n

Le résultat donc en D1

Actualises :

Range("A1", "C1") pour une autre plage de cellules
Range("D1") pour une autre cellule dans laquelle tu souhaites la
moyenne

Fais des essais et dis moi !!!!!!!
.