calcul en fonction du texte et de la couleur de la cellule

Le
andrea
Bonjour

j'ai récupéré sur internet 2 fonctions :
=
Function BgColorcountif(SearchArea As Object, BgColor As Integer) As Integer
For Each Cell In SearchArea
BgColorcountif = BgColorcountif + Abs(Cell.Interior.ColorIndex = BgColor)
Next Cell
End Function


Function BgColor(CkCell As Object)
BgColor = Abs(CkCell.Interior.ColorIndex)
End Function


qui me permettent avec la formule suivante :
=BgColorcountif(E2:E32;Bgcolor(A39))*7

de calculer en fonction de la couleur de la cellule
cela fonctionne très bien et s'est super

mais en plus j'aimerais par exemple calculer aussi en fonction du texte
contenu dans la cellule

par exemple j'ai 3 cellules rouge qui contiennent le mot chat je
multiplie 3 par 7
mais si dans le lot j'ai 2 cellules rouges qui contiennent le mot chien
j'aimerais multiplier par 12

ce qui donnerais comme calcul : 3*7 + 2*12


est-ce possible et comment faire

merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #5243261
Bonjour
Tu en as vraiment l'utilité, ou c'est un défi technologique ?
;-)
Daniel
"andrea"
Bonjour

j'ai récupéré sur internet 2 fonctions :
========================================== > Function BgColorcountif(SearchArea As Object, BgColor As Integer) As
Integer
For Each Cell In SearchArea
BgColorcountif = BgColorcountif + Abs(Cell.Interior.ColorIndex = BgColor)
Next Cell
End Function


Function BgColor(CkCell As Object)
BgColor = Abs(CkCell.Interior.ColorIndex)
End Function
========================================= >
qui me permettent avec la formule suivante :
=BgColorcountif(E2:E32;Bgcolor(A39))*7

de calculer en fonction de la couleur de la cellule
cela fonctionne très bien et s'est super

mais en plus j'aimerais par exemple calculer aussi en fonction du texte
contenu dans la cellule

par exemple j'ai 3 cellules rouge qui contiennent le mot chat je
multiplie 3 par 7
mais si dans le lot j'ai 2 cellules rouges qui contiennent le mot chien
j'aimerais multiplier par 12

ce qui donnerais comme calcul : 3*7 + 2*12


est-ce possible et comment faire

merci d'avance


JB
Le #5243221
Bonjour,

Fonction matricielle:

=SOMMEPROD((couleurfond(B2:B10)=3)*(B2:B10="chat"))

Function couleurFond(champ As Range)
Application.Volatile
Dim temp()
ReDim temp(1 To champ.Count)
For i = 1 To champ.Count
temp(i) = champ(i).Interior.ColorIndex
Next i
couleurFond = Application.Transpose(temp)
End Function

http://cjoint.com/?cusgSBRbdX

JB
http://boisgontierjacques.free.fr


On 20 fév, 17:01, andrea
Bonjour

j'ai récupéré sur internet 2 fonctions :
======================== ===================
Function BgColorcountif(SearchArea As Object, BgColor As Integer) As Integ er
For Each Cell In SearchArea
BgColorcountif = BgColorcountif + Abs(Cell.Interior.ColorIndex = BgCol or)
Next Cell
End Function

Function BgColor(CkCell As Object)
BgColor = Abs(CkCell.Interior.ColorIndex)
End Function
======================== ==================

qui me permettent avec la formule suivante :
=BgColorcountif(E2:E32;Bgcolor(A39))*7

de calculer en fonction de la couleur de la cellule
cela fonctionne très bien et s'est super

mais en plus j'aimerais par exemple calculer aussi en fonction du texte
contenu dans la cellule

par exemple j'ai 3 cellules rouge  qui contiennent le mot chat  je
multiplie  3  par 7
mais si dans le lot j'ai 2 cellules rouges qui contiennent le mot chien
j'aimerais multiplier par 12

ce qui donnerais comme calcul :  3*7  + 2*12

est-ce possible et comment faire

merci d'avance


andrea
Le #5243201
oui cela me serait très utile et me ferait gagner un temps fou
j'ai simplifié l'exemple pour etre plus claire
je me demande si l'on peut directement dans le code de la fonction
dire toutes les cellules valent 7 sauf celles qui contiennent le mot
chien qui elle vaut 12
puisque je n'ai que 2 possibilité de valeur 7 ou 12
merci d'avance



Bonjour
Tu en as vraiment l'utilité, ou c'est un défi technologique ?
;-)
Daniel
"andrea"
Bonjour

j'ai récupéré sur internet 2 fonctions :
========================================== >> Function BgColorcountif(SearchArea As Object, BgColor As Integer) As
Integer
For Each Cell In SearchArea
BgColorcountif = BgColorcountif + Abs(Cell.Interior.ColorIndex = BgColor)
Next Cell
End Function


Function BgColor(CkCell As Object)
BgColor = Abs(CkCell.Interior.ColorIndex)
End Function
========================================= >>
qui me permettent avec la formule suivante :
=BgColorcountif(E2:E32;Bgcolor(A39))*7

de calculer en fonction de la couleur de la cellule
cela fonctionne très bien et s'est super

mais en plus j'aimerais par exemple calculer aussi en fonction du texte
contenu dans la cellule

par exemple j'ai 3 cellules rouge qui contiennent le mot chat je
multiplie 3 par 7
mais si dans le lot j'ai 2 cellules rouges qui contiennent le mot chien
j'aimerais multiplier par 12

ce qui donnerais comme calcul : 3*7 + 2*12


est-ce possible et comment faire

merci d'avance






Daniel.C
Le #5243181
Function CoulTexte(Plage As Range, Texte As String, _
Coul As Integer, Mult As Double)
Dim c As Range, Ctr As Integer
For Each c In Plage
If c.Interior.ColorIndex = Coul And c = Texte Then
Ctr = Ctr + 1
End If
Next c
CoulTexte = Ctr * Mult
End Function
"Plage" est la plage de cellules, "Texte" le texte cherché, "Coul" le
colorindex de la cellule, et "Mult" le coefficient de multiplication.
Daniel
"andrea"
Bonjour

j'ai récupéré sur internet 2 fonctions :
========================================== > Function BgColorcountif(SearchArea As Object, BgColor As Integer) As
Integer
For Each Cell In SearchArea
BgColorcountif = BgColorcountif + Abs(Cell.Interior.ColorIndex = BgColor)
Next Cell
End Function


Function BgColor(CkCell As Object)
BgColor = Abs(CkCell.Interior.ColorIndex)
End Function
========================================= >
qui me permettent avec la formule suivante :
=BgColorcountif(E2:E32;Bgcolor(A39))*7

de calculer en fonction de la couleur de la cellule
cela fonctionne très bien et s'est super

mais en plus j'aimerais par exemple calculer aussi en fonction du texte
contenu dans la cellule

par exemple j'ai 3 cellules rouge qui contiennent le mot chat je
multiplie 3 par 7
mais si dans le lot j'ai 2 cellules rouges qui contiennent le mot chien
j'aimerais multiplier par 12

ce qui donnerais comme calcul : 3*7 + 2*12


est-ce possible et comment faire

merci d'avance


andrea
Le #5243171
Je ne permettrais pas de poser un problème juste pour le plaisir
vous faire cogiter et perdre votre temps

d'ailleurs je remercie tous ceux qui répondent
si vite et si efficacement

grace à vous tous, je progresse et je me rends compte
qu'excel peut tout faire c'est impressionnant

la seule chose qu'excel ne peut pas faire c'est le ménage et le repassage

mais qui sait !!! un jour ...
Daniel.C
Le #5243161
je me demande si l'on peut directement dans le code de la fonction
dire toutes les cellules valent 7


Même les cellules qui ne sont pas rouges ?

sauf celles qui contiennent le mot
chien qui elle vaut 12


Si elles sont rouges ?

Daniel

isabelle
Le #5243151
bonjour andrea,


la seule chose qu'excel ne peut pas faire c'est le ménage et le repassage

mais qui sait !!! un jour ...


nous en sommes pas loin andrea, surtout avec l'aide de ChrisV ;-)

isabelle( qui cours au abris )

Daniel.C
Le #5243141
la seule chose qu'excel ne peut pas faire c'est le ménage et le repassage


J'aurais plutôt dit le café, mais, bon...

Daniel.C
Le #5243101
Bonjour.
Le jour où l'on aura de l'aide sur DATEDIF (pas encore dans 2007, bien que
la fonction soit intégrée)
;-(((
Daniel
"isabelle" a écrit dans le message de news:
uZBQbT%
bonjour andrea,


la seule chose qu'excel ne peut pas faire c'est le ménage et le repassage

mais qui sait !!! un jour ...


nous en sommes pas loin andrea, surtout avec l'aide de ChrisV ;-)

isabelle( qui cours au abris )



andrea
Le #5243061
merci cela fonctionne
j'ai mis cette formule
=SOMMEPROD((couleurfond($K$2:$K$32)D)*($I$2:$I$32="chat")*4)+SOMMEPROD((couleurfond($K$2:$K$32)D)*($I$2:$I$32<>"chat")*8,25)

peut on la simplifier ?

merci d'avance


Bonjour,

Fonction matricielle:

=SOMMEPROD((couleurfond(B2:B10)=3)*(B2:B10="chat"))

Function couleurFond(champ As Range)
Application.Volatile
Dim temp()
ReDim temp(1 To champ.Count)
For i = 1 To champ.Count
temp(i) = champ(i).Interior.ColorIndex
Next i
couleurFond = Application.Transpose(temp)
End Function

http://cjoint.com/?cusgSBRbdX

JB
http://boisgontierjacques.free.fr


On 20 fév, 17:01, andrea
Bonjour

j'ai récupéré sur internet 2 fonctions :
========================================== >> Function BgColorcountif(SearchArea As Object, BgColor As Integer) As Integer
For Each Cell In SearchArea
BgColorcountif = BgColorcountif + Abs(Cell.Interior.ColorIndex = BgColor)
Next Cell
End Function

Function BgColor(CkCell As Object)
BgColor = Abs(CkCell.Interior.ColorIndex)
End Function
========================================= >>
qui me permettent avec la formule suivante :
=BgColorcountif(E2:E32;Bgcolor(A39))*7

de calculer en fonction de la couleur de la cellule
cela fonctionne très bien et s'est super

mais en plus j'aimerais par exemple calculer aussi en fonction du texte
contenu dans la cellule

par exemple j'ai 3 cellules rouge qui contiennent le mot chat je
multiplie 3 par 7
mais si dans le lot j'ai 2 cellules rouges qui contiennent le mot chien
j'aimerais multiplier par 12

ce qui donnerais comme calcul : 3*7 + 2*12

est-ce possible et comment faire

merci d'avance





Publicité
Poster une réponse
Anonyme