Somme des cellules en couleur

Je voudrais que excel trouve les cellules en (rouge ) et qui les additionne les cellules qui sont en couleur seulement; b3 et c5

exp:

a1= 20

a2= 15

b3= 12 (cellule rouge)

a4= 24

c5= 18 (cellulerouge)

Salut le forum

Bienvenue, Lerox comme nouveau membres.

Une fonction personnalisée (Il en existe plusieurs variantes)

Code à mettre dans un module VBA

Function SommeSiCouleur(Plage As Range, NumeroDeCouleur%) As Long
Application.Volatile True
Dim wCell As Range
For Each wCell In Plage
If wCell.Interior.ColorIndex = NumeroDeCouleur Then
SommeSiCouleur = SommeSiCouleur + wCell.Value
End If
Next
End Function

Ou encore sans connaitre la valeur de la palette des couleurs

Function SumByColor(PlageEntree As Range, CouleurPlage As Range) As Double 
Dim Cell As Range, TempSum As Double, ColorIndex As Integer 
Application.Volatile
      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

Mytå

Merçi beaucoup Mytä

Pour le code des couleurs je trouve cela où?

Lerox

Bonjour

Dans le fichier

Cordialement

828palette56.zip (17.85 Ko)

Re le forum

Avec la deuxième macro, il prends la couleur de la plage

Pas besoin de connaitre la palette de couleur a écrit :

CouleurPlage As Range

Mytå

Salut

Je suis vraiment pas très bonne, j'ai copier dans mon visual basic la formulation

mais je ne comprends pas comment l'exécuter pour que je vois mes totaux de mes cellules jaune et mes totaux des cellules rouge et mes cellules de couleurs verte qui sont aléatoir dans mon fichier

Merci

Marie-Claude

7474

Bonsoir Marie-Claude,

Pourrais-tu joindre un fichier que tu utiliserais, s'il te plait.

Tu trouveras en retour l'application de la fonction sur ta feuille selon :

  • un press bouton ;
  • ouverture de dossier ;
  • activation de ta feuille ;
  • modification sur ta feuille ;
  • double click de souris
  • etc

A très vite

Air_2

Voici le fichier en question, Ce que je veux est un total de la valeur des cellules par couleur Merci à l'avance Marie-Claude

Bonsoir à tous et toutes,

Trouve ci joint ton fichier en retour, dis moi si cela te convient.

Grands Merci à Mytå et à Amadéus (pour la palette)

Amicalement

Air_2

Merci énormément.

Je peux utiliser ces mêmes macros dans un autre dossier à la condition que les feuilles

se nomment TachesProfs2009 et Résultat par couleurs ?

Et que mes cellules à calculer commence à F_2 à la cellule IV_31

Merci

Marie-Claude

Bonsoir,

Tu trouveras des explications complémentaires dans le fichier ci joint :

Amicalement

Air2

Merci beaucoup

Marie-Claude

Bonjour

J'ai utilisé le code indiqué en première page.

Il marche très bien. Je n'ai qu'un soucis : les arrondis. En effet, il arrondi les sommes à l'entier le plus proche. Or, je souhaiterais effectuer des sommes à 2 chiffres après la virgule (somme des dépenses engendrées).

Comment faire?

Merci d'avance pour votre aide

puppets a écrit :

Bonjour

J'ai utilisé le code indiqué en première page.

Il marche très bien. Je n'ai qu'un soucis : les arrondis. En effet, il arrondi les sommes à l'entier le plus proche. Or, je souhaiterais effectuer des sommes à 2 chiffres après la virgule (somme des dépenses engendrées).

Comment faire?

Merci d'avance pour votre aide

Bonjour,

Il suffit de selectionner la colonne puis clique droit souris:

  • choisir format de cellule
  • choisir nombre
  • choisir la catégorie Nombre
  • Modifier Nombre de décimales : remplacer 0 par 2 ou +
  • Cliquer sur le bouton à gauche d'utiliser le séparateur de millier (c'est un choix de confort personnel [déformation professionnelle].

Puis valider les mofications en cliquant sur la touche OK.

J'espère vous avoir apporter une réponse à votre léger soucis, si le problème persiste n'hésitez surtout pas à joindre un fichier le problème peut-être ailleurs ?

To be continued.... (I'll be back)

Cdt

Air_2

Bonjour

Non ce n'est pas ce problème : les cellules sont déjà configurées en 2 décimales.

Le problème vient du fait que sur une cellule donnée, j'additionne plusieurs fois la macro qui a été donnée (NBColor), car je l'applique sur plusieurs feuilles.

Et à chaque fois, elle arrondi la somme obtenue... Ce qui fait qu'au final, j'ai un écart de quelques centimes avec la réalité.

puppets a écrit :

Bonjour

Non ce n'est pas ce problème : les cellules sont déjà configurées en 2 décimales.

Le problème vient du fait que sur une cellule donnée, j'additionne plusieurs fois la macro qui a été donnée (NBColor), car je l'applique sur plusieurs feuilles.

Et à chaque fois, elle arrondi la somme obtenue... Ce qui fait qu'au final, j'ai un écart de quelques centimes avec la réalité.

Bonjour puppets,

Si c'est le code de maître Mytå que vous utlisez avec la permissions du performer, pouvez-vous essayer ce qui suit.

si cela correspond à votre demande ce sera parfait, dans le cas contraire désolé car comme vous le savez il est toujours difficile de retoucher une oeuvre qui reflète le talent du concepteur:

Function SommeSiCouleur(Plage As Range, NumeroDeCouleur%) As Long
Application.Volatile True
Dim wCell As Range
For Each wCell In Plage
If wCell.Interior.ColorIndex = NumeroDeCouleur Then
SommeSiCouleur = Cdec(SommeSiCouleur + wCell.Value)
End If
Next
End Function
Function SumByColor(PlageEntree As Range, CouleurPlage As Range) As Double
Dim Cell As Range, TempSum As Double, ColorIndex As Integer
Application.Volatile
      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 = Cdec(TempSum + _
                    Cell.Value)
            End If
      Next Cell
      On Error GoTo 0
      Set Cell = Nothing
      SumByColor = Cdec(TempSum)
End Function

Cdt

Air_2

Rechercher des sujets similaires à "somme couleur"