Calculer par condition + couleur

Le
Apitos
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4942451
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
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.


Francois L
Le #4942431
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

JB
Le #4942411
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

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



lSteph
Le #4942291
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
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.


Apitos
Le #4941661
On 5 juin, 06:34, 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

JBhttp://boisgontierjacques.free.fr/

On 5 juin, 03:38, Apitos


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.


JB
Le #4941611
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
On 5 juin, 06:34,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

JBhttp://boisgontierjacques.free.fr/

On 5 juin, 03:38, Apitos
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 -




Apitos
Publicité
Poster une réponse
Anonyme