OVH Cloud OVH Cloud

Fonction

2 réponses
Avatar
GB Perrin
Bonjour,
J'ai cr=E9=E9 une fonction qui effectue des calculs sur le=20
contenu de cellules suivant leur couleur.
Elle fonctionne la premi=E8re fois que je l'ins=E8re mais=20
lorsque je change la couleur des cellules le r=E9sultat de=20
la fonction ne change pas, c'est comme si la fonction ne=20
voyait pas le changement de couleur.
Merci.
GB Perrin=20
=20
Function SommeRouge(Plage As Range, Couleur As Single)
Dim vCellule As Object
Dim vSomme As Single
For Each vCellule In Plage
If vCellule.Interior.ColorIndex =3D Couleur Then vSomme=20
=3D vSomme + vCellule.Value
Next
SommeRouge =3D vSomme
End Function

2 réponses

Avatar
J-Dan
bonjour GB

le changement de couleur d'une cellule n'est pas
interprété par Excel comme un changement de valeur de
celle-ci necessitant un recalcul.
Tu peux contourner le problème en mettant dans le module
de ta (tes) feuille(s) une commande de recalcul de ta
fonction à chaque évènement Worksheet_SelectionChange.

par exemple :
Range("XX").Calculate (la cellule où se trouve ta
fonction)

petite question : pourquoi "Then vSomme
= vSomme + vCellule.Value" et non = vSomme + 1 ?
Tu peux aussi être plus précis avec Dim vCellule As Range.

J-Dan



-----Message d'origine-----
Bonjour,
J'ai créé une fonction qui effectue des calculs sur le
contenu de cellules suivant leur couleur.
Elle fonctionne la première fois que je l'insère mais
lorsque je change la couleur des cellules le résultat de
la fonction ne change pas, c'est comme si la fonction ne
voyait pas le changement de couleur.
Merci.
GB Perrin

Function SommeRouge(Plage As Range, Couleur As Single)
Dim vCellule As Object
Dim vSomme As Single
For Each vCellule In Plage
If vCellule.Interior.ColorIndex = Couleur Then
vSomme

= vSomme + vCellule.Value
Next
SommeRouge = vSomme
End Function
.



Avatar
J-Dan
GB,

excuse-moi pour ma question stupide. Je viens de
comprendre que tu additionnais le contenu des cellules
(comme tu l'avais précisé dans ta question).

J-Dan


-----Message d'origine-----
bonjour GB

le changement de couleur d'une cellule n'est pas
interprété par Excel comme un changement de valeur de
celle-ci necessitant un recalcul.
Tu peux contourner le problème en mettant dans le module
de ta (tes) feuille(s) une commande de recalcul de ta
fonction à chaque évènement Worksheet_SelectionChange.

par exemple :
Range("XX").Calculate (la cellule où se trouve ta
fonction)

petite question : pourquoi "Then vSomme
= vSomme + vCellule.Value" et non = vSomme + 1 ?
Tu peux aussi être plus précis avec Dim vCellule As
Range.


J-Dan



-----Message d'origine-----
Bonjour,
J'ai créé une fonction qui effectue des calculs sur le
contenu de cellules suivant leur couleur.
Elle fonctionne la première fois que je l'insère mais
lorsque je change la couleur des cellules le résultat
de


la fonction ne change pas, c'est comme si la fonction
ne


voyait pas le changement de couleur.
Merci.
GB Perrin

Function SommeRouge(Plage As Range, Couleur As Single)
Dim vCellule As Object
Dim vSomme As Single
For Each vCellule In Plage
If vCellule.Interior.ColorIndex = Couleur Then
vSomme

= vSomme + vCellule.Value
Next
SommeRouge = vSomme
End Function
.

.