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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 .
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
.
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 .
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 .
.
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
.
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 .