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

Calculer par condition + couleur

7 réponses
Avatar
Apitos
Bonjour,

Dans la Colonne G j'ai fait :

=3DSOMME(G2:G505)/(NB.SI(G:G;">0"))

Comment faire pour ajouter =E0 cette formule la couleur de la cellule
comme condition ?

(Trouver la moyenne de tout les cellules JAUNE et SUPERIEUR =E0 Z=E9ro
dans la colonne G )

Merci.

7 réponses

Avatar
JB
Bonjour,

=SommeCouleurFond(B2:G4;3)/NbSiCouleurFond(B2:G4;3;">0")

Alt+F11 puis Insertion/Module:

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

Function NbSiCouleurFond(champ As Range, couleurFond, condition)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond Then
If Evaluate(c.Value & condition) Then
If IsNumeric(c.Value) Then temp = temp + 1
End If
End If
Next c
NbSiCouleurFond = temp
End Function

http://cjoint.com/?gfgHZmY5Et

JB http://boisgontierjacques.free.fr/


On 5 juin, 03:38, Apitos wrote:
Bonjour,

Dans la Colonne G j'ai fait :

=SOMME(G2:G505)/(NB.SI(G:G;">0"))

Comment faire pour ajouter à cette formule la couleur de la cellule
comme condition ?

(Trouver la moyenne de tout les cellules JAUNE et SUPERIEUR à Zéro
dans la colonne G )

Merci.


Avatar
Francois L
Bonjour,

Dans la Colonne G j'ai fait :

=SOMME(G2:G505)/(NB.SI(G:G;">0"))

Comment faire pour ajouter à cette formule la couleur de la cellule
comme condition ?

(Trouver la moyenne de tout les cellules JAUNE et SUPERIEUR à Zéro
dans la colonne G )



Bonjour,

A ma connaissance, il n'y a pas de fonction dans XL qui permette de
répondre à ta demande. Il faudrait donc une fonction personnalisée de type
'----------------------------------------
Function nbcouleur(plage As Range)
Application.Volatile
Dim nb As Integer
nb = 0
For Each c In plage
If c.Interior.ColorIndex = 12 And [c] > 0 Then nb = nb + 1
Next
nbcouleur = nb
End Function
'-------------------------------------------

mais... le changement de couleur d'une cellule ne provoque pas le
recalcul dans Excel, il faudra donc actualiser le résultat de la
fonction à chaque changement de couleur ! A moins que la couleur ne soit
le résultat d'une MEFC (mise en forme conditionnelle) auquel cas il
suffit de reprendre la formule de la MEFC dans la formule de calcul.

--
François L

Avatar
JB
Bonjour,

-Lorsque la couleur de fond est modifiée, le résultat n'est pas mis à
jour immédiatement (sauf si on utilisé le pinceau pour reproduide la
mise en forme).
-On peut utiliser F9 pour provoquer un calcul immédiat
-Ou utiliser l'événnement Selection_Change pour automatiser le calcul
si modif dans le champ des nombres modifiés(B2:G4 e.g.).

http://boisgontierjacques.free.fr/fichiers/fonctionsperso/FonctionNbSiCoule urFond.xls

Dim celluleAvant
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not IsEmpty(celluleAvant) Then
If Not Intersect(Range(celluleAvant), [B2:G4]) Is Nothing Then
Calculate
End If
celluleAvant = Target.Address
End Sub

JB


On 5 juin, 06:52, Francois L wrote:

Bonjour,

Dans la Colonne G j'ai fait :

=SOMME(G2:G505)/(NB.SI(G:G;">0"))

Comment faire pour ajouter à cette formule la couleur de la cellule
comme condition ?

(Trouver la moyenne de tout les cellules JAUNE et SUPERIEUR à Zéro
dans la colonne G )


Bonjour,

A ma connaissance, il n'y a pas de fonction dans XL qui permette de
répondre à ta demande. Il faudrait donc une fonction personnalisée de type
'----------------------------------------
Function nbcouleur(plage As Range)
Application.Volatile
Dim nb As Integer
nb = 0
For Each c In plage
If c.Interior.ColorIndex = 12 And [c] > 0 Then nb = nb + 1
Next
nbcouleur = nb
End Function
'-------------------------------------------

mais... le changement de couleur d'une cellule ne provoque pas le
recalcul dans Excel, il faudra donc actualiser le résultat de la
fonction à chaque changement de couleur ! A moins que la couleur ne soit
le résultat d'une MEFC (mise en forme conditionnelle) auquel cas il
suffit de reprendre la formule de la MEFC dans la formule de calcul.

--
François L



Avatar
lSteph
Bonjour,

C'est un exercice de code intéressant certes mais cela s'arrête
là.....
On l'a dit et redit sur ce forum et pas encore assez sans doute,
vouloir calculer avec des couleurs est une gageure (en l'état des
fonctionnalités actuelles).
Application.Volatile n'y changera pas grand chose dans ce cas, même
si c'est un minimum!
A moins de mobiliser des évennements de nature à scléroser
complètement l'appli ou passer son temps à faire F9
Pourquoi?... et bien comme le souligne (amha) à très juste titre
François
un changement de couleur ne provoque pas naturellement un recalcul.

Amicordialement.

lSteph


On 5 juin, 03:38, Apitos wrote:
Bonjour,

Dans la Colonne G j'ai fait :

=SOMME(G2:G505)/(NB.SI(G:G;">0"))

Comment faire pour ajouter à cette formule la couleur de la cellule
comme condition ?

(Trouver la moyenne de tout les cellules JAUNE et SUPERIEUR à Zéro
dans la colonne G )

Merci.


Avatar
Apitos
On 5 juin, 06:34, JB wrote:
Bonjour,

=SommeCouleurFond(B2:G4;3)/NbSiCouleurFond(B2:G4;3;">0")

Alt+F11 puis Insertion/Module:

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

Function NbSiCouleurFond(champ As Range, couleurFond, condition)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond Then
If Evaluate(c.Value & condition) Then
If IsNumeric(c.Value) Then temp = temp + 1
End If
End If
Next c
NbSiCouleurFond = temp
End Function

http://cjoint.com/?gfgHZmY5Et

JBhttp://boisgontierjacques.free.fr/

On 5 juin, 03:38, Apitos wrote:



Bonjour,

Dans la Colonne G j'ai fait :

=SOMME(G2:G505)/(NB.SI(G:G;">0"))

Comment faire pour ajouter à cette formule la couleur de la cellule
comme condition ?

(Trouver la moyenne de tout les cellules JAUNE et SUPERIEUR à Zéro
dans la colonne G )

Merci.- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Enfin un site pour JB ...

Bonne continuation.

Pour les fonctions que tu m'as donné j'ai essayé avec une autre
valeur, le vert (4), et ça me donne ceci : #VALEUR!

Quel est le problème ?

Merci.


Avatar
JB
Le pb ne vient pas de la couleur mais des nb décimaux:

http://boisgontierjacques.free.fr/fichiers/fonctionsperso/FonctionNbSiCoule urFond.xls

Function NbSiCouleurFond(champ As Range, couleurFond, condition)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond Then
If Evaluate(Str(c.Value) & condition) Then
If IsNumeric(c.Value) Then temp = temp + 1
End If
End If
Next c
NbSiCouleurFond = temp
End Function

JB

On 5 juin, 18:35, Apitos wrote:
On 5 juin, 06:34,JB wrote:





Bonjour,

=SommeCouleurFond(B2:G4;3)/NbSiCouleurFond(B2:G4;3;">0")

Alt+F11 puis Insertion/Module:

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

Function NbSiCouleurFond(champ As Range, couleurFond, condition)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond Then
If Evaluate(c.Value & condition) Then
If IsNumeric(c.Value) Then temp = temp + 1
End If
End If
Next c
NbSiCouleurFond = temp
End Function

http://cjoint.com/?gfgHZmY5Et

JBhttp://boisgontierjacques.free.fr/

On 5 juin, 03:38, Apitos wrote:

Bonjour,

Dans la Colonne G j'ai fait :

=SOMME(G2:G505)/(NB.SI(G:G;">0"))

Comment faire pour ajouter à cette formule la couleur de la cellule
comme condition ?

(Trouver la moyenne de tout les cellules JAUNE et SUPERIEUR à Zéro
dans la colonne G )

Merci.- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Enfin un site pourJB...

Bonne continuation.

Pour les fonctions que tu m'as donné j'ai essayé avec une autre
valeur, le vert (4), et ça me donne ceci : #VALEUR!

Quel est le problème ?

Merci.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -




Avatar
Apitos