Somme de cellules en couleur

  • Initiateur de la discussion seb
  • Date de début
S

seb

Guest
bonjour à tous,
je suis un peu novice sur les fonctions évoluées d'Excel et je demande votre aide :
est il possible de faire la somme de cellules contenant des chiffres d'une couleur spécifique??

je m'explique : j'utilise un tableau avec une colonne de nombre de couleurs différentes (1 couleur pour chaque centre de facturation, il y en a 4). je voudrais faire en fin de colonne la somme des cellules en vert, la somme de celles en rouge etc....
(je ne peux pas séparer en plusieurs colonnes selon les centres de cout, car il y en a trop de cellules colorées)
est ce possible?? et comment

merci d'avance.
Sébastien
 
S

stephane

Guest
essaie en utilisant des sommes conditionnelles avec comme paramètre de trie la valeur RGB ou Integer du parametre reglant la couleur de fond de la cellule.
Je ne me rappelle plus du nom de la fonction, mais tu peut la retrouver simplement : cree un macro ou tu change la couleur de fond d'une cellule, et va voir le code. La fonction est la ( avec plein de choses inutiles).
stephane
 
M

Mytå

Guest
Bonsoir le Forum

' returns the sum of each cell in the range InputRange that has the same
' background color as the cell in ColorRange
' example: =SumByColor($A$1:$A$20,B1)
' range A1:A20 is the range you want to sum
' range B1 is a cell with the background color you want to sum

Function SumByColor(PlageEntree As Range, CouleurPlage As Range) As Double
Dim Cell As Range, TempSum As Double, ColorIndex As Integer
ColorIndex = CouleurPlage.Cells(1, 1).Interior.ColorIndex
TempSum = 0
On Error Resume Next
For Each Cell In PlageEntree.Cells
If Cell.Formula <> "" Then
If Cell.Interior.ColorIndex = ColorIndex Then TempSum = TempSum + _
Cell.Value
End If
Next Cell
On Error GoTo 0
Set Cell = Nothing
SumByColor = TempSum
End Function

Esperant t'avoir aider
smiley_417.gif
 
M

Mytå

Guest
Petit detail

ColorIndex = CouleurPlage.Cells(1, 1).Interior.ColorIndex
peut etre remplacer par

ColorIndex = CouleurPlage.Cells(1, 1).Font.ColorIndex

a modifier ici aussi

If Cell.Interior.ColorIndex = ColorIndex Then TempSum = TempSum + _
Cell.Value

If Cell.Font.ColorIndex = ColorIndex Then TempSum = TempSum + _
Cell.Value


smiley_417.gif
 
M

Mytå

Guest
re Seb

lance ton fichier excel
ensuite Alt+F11
Insertion module
Copier-coller la macro suivante dans le module

Function SumByColor(PlageEntree As Range, CouleurPlage As Range) As Double
Dim Cell As Range, TempSum As Double, ColorIndex As Integer
ColorIndex = CouleurPlage.Cells(1, 1).Font.ColorIndex
TempSum = 0
On Error Resume Next
For Each Cell In PlageEntree.Cells
If Cell.Formula <> "" Then
If Cell.Font.ColorIndex = ColorIndex Then TempSum = TempSum + _
Cell.Value
End If
Next Cell
On Error GoTo 0
Set Cell = Nothing
SumByColor = TempSum
End Function

smiley_417.gif
 
S

seb

Guest
Génial!!
c'est exactement ce que je voulais....
par contre, si je change la couleur d'une police, le calcul ne se fait que si je revalide la formule. c'est normal? peut on automatiser???

en tout cas, merci, grâce à cette formule, je vais gagner un temps fou!!
Seb
 

Discussions similaires

Statistiques des forums

Discussions
311 741
Messages
2 082 055
Membres
101 882
dernier inscrit
XaK_