OVH Cloud OVH Cloud

SOMME COULEUR

3 réponses
Avatar
Chris MICHEL
Bonjour,

voila: j'ai fait pour un copain une petite fonction lui=20
permettant de faire la somme des cases pass=E9es en fond=20
rose (pour info: il a un fichier avec un tableau de budget=20
et les cases en rose repr=E9sentent ce que sa copine a pay=E9=20
des d=E9penss de leur m=E9nage). La fonction marche tr=E8s bien,=20
saufqu'elle ne se r=E9actualise pas toute seule quand on=20
modifie une couleur dans le tableau (si on passe une=20
nouvelle case en rose par exemple). M=EAme en appuyant sur=20
F9, cela ne suffit pas, il faut aller dans la barre de=20
formule et faire enter.

Voici la fonction:

Function SOMMEROSE(ByVal zone_somme As Range)

Dim somme As Double
Dim c As Range

somme =3D 0

Calculate

For Each c In zone_somme

If c.Interior.ColorIndex =3D 38 And IsNumeric(c.Value) _
Then somme =3D somme + c.Value

Next

SOMMEROSE =3D somme

End Function

QQun a une id=E9e?

Merci d'avance,

Chris.

3 réponses

Avatar
Ellimac
Bonjour,

Il faut ajouter
Application.Volatile dans ta fonction

Camille

-----Message d'origine-----
Bonjour,

voila: j'ai fait pour un copain une petite fonction lui
permettant de faire la somme des cases passées en fond
rose (pour info: il a un fichier avec un tableau de
budget

et les cases en rose représentent ce que sa copine a payé
des dépenss de leur ménage). La fonction marche très
bien,

saufqu'elle ne se réactualise pas toute seule quand on
modifie une couleur dans le tableau (si on passe une
nouvelle case en rose par exemple). Même en appuyant sur
F9, cela ne suffit pas, il faut aller dans la barre de
formule et faire enter.

Voici la fonction:

Function SOMMEROSE(ByVal zone_somme As Range)

Dim somme As Double
Dim c As Range

somme = 0

Calculate

For Each c In zone_somme

If c.Interior.ColorIndex = 38 And IsNumeric(c.Value) _
Then somme = somme + c.Value

Next

SOMMEROSE = somme

End Function

QQun a une idée?

Merci d'avance,

Chris.
.



Avatar
ru-th
Salut
normal, le changement de couleur ne déclenche pas de recalcul
mais généralement les couleurs ont une signification et donc répondre à une
condition, alors le plus fiable est de tester ces conditions
mais bonne idée de mettre en rose les dépenses de madame, mais plus efficace
de rajouter un petit code DPCePEM par exemple (Dépenses payées par la copine
pour l'entretien du ménage) ;-)) et après =nb.si(CodeDepenses;"DPCePME")
sinon, la copine elle croira systématiquement que tu l'as fait exprès que la
fonction ne se réactualise pas pour avantager son copain qui, dès lors te
fera la gueule parce que la copine n'est pas contente. Conclusion,
méfies-toi des copains ! ;-))
a+
rural thierry
"Chris MICHEL" a écrit dans le message
de news: 611701c3e654$dcc73530$
Bonjour,

voila: j'ai fait pour un copain une petite fonction lui
permettant de faire la somme des cases passées en fond
rose (pour info: il a un fichier avec un tableau de budget
et les cases en rose représentent ce que sa copine a payé
des dépenss de leur ménage). La fonction marche très bien,
saufqu'elle ne se réactualise pas toute seule quand on
modifie une couleur dans le tableau (si on passe une
nouvelle case en rose par exemple). Même en appuyant sur
F9, cela ne suffit pas, il faut aller dans la barre de
formule et faire enter.

Voici la fonction:

Function SOMMEROSE(ByVal zone_somme As Range)

Dim somme As Double
Dim c As Range

somme = 0

Calculate

For Each c In zone_somme

If c.Interior.ColorIndex = 38 And IsNumeric(c.Value) _
Then somme = somme + c.Value

Next

SOMMEROSE = somme

End Function

QQun a une idée?

Merci d'avance,

Chris.
Avatar
Salut Thierry,

merci pour ta réponse.

Je suis d'accord avec toi, si j'avais créé le fichier au
départ, je ne m'y serais pas pris comme cela et j'aurai
codé d'une manière ou d'une autre l'auteur des dépenses,
pius j'aurai mis une MEFC, mais en l'occurence, j'ai eu le
fichier tout fait et je voulais voir s'il n'y avait quand
même pas moyen de se débrouiller comme ça.

J'espère effectivement que tout cela ne va pas
irrémédiablement endommager une longue amitié...

A +,

Chris.

-----Message d'origine-----
Salut
normal, le changement de couleur ne déclenche pas de
recalcul

mais généralement les couleurs ont une signification et
donc répondre à une

condition, alors le plus fiable est de tester ces
conditions

mais bonne idée de mettre en rose les dépenses de madame,
mais plus efficace

de rajouter un petit code DPCePEM par exemple (Dépenses
payées par la copine

pour l'entretien du ménage) ;-)) et après =nb.si
(CodeDepenses;"DPCePME")

sinon, la copine elle croira systématiquement que tu l'as
fait exprès que la

fonction ne se réactualise pas pour avantager son copain
qui, dès lors te

fera la gueule parce que la copine n'est pas contente.
Conclusion,

méfies-toi des copains ! ;-))
a+
rural thierry
"Chris MICHEL" a
écrit dans le message

de news: 611701c3e654$dcc73530$
Bonjour,

voila: j'ai fait pour un copain une petite fonction lui
permettant de faire la somme des cases passées en fond
rose (pour info: il a un fichier avec un tableau de budget
et les cases en rose représentent ce que sa copine a payé
des dépenss de leur ménage). La fonction marche très bien,
saufqu'elle ne se réactualise pas toute seule quand on
modifie une couleur dans le tableau (si on passe une
nouvelle case en rose par exemple). Même en appuyant sur
F9, cela ne suffit pas, il faut aller dans la barre de
formule et faire enter.

Voici la fonction:

Function SOMMEROSE(ByVal zone_somme As Range)

Dim somme As Double
Dim c As Range

somme = 0

Calculate

For Each c In zone_somme

If c.Interior.ColorIndex = 38 And IsNumeric(c.Value) _
Then somme = somme + c.Value

Next

SOMMEROSE = somme

End Function

QQun a une idée?

Merci d'avance,

Chris.


.