Somme, avec condition de format

Bonjour a tous,

Dans un tableau, il y a quelques cellules remplis en jaune, d'autres le sont en vert.

Je voudrais faire la somme des cellules jaune avec une condion de format.

Comment faire ?

https://www.excel-pratique.com/~files/doc/raphael.xls

D'avance, merci a tous pour votre aide

Raphael

Bonjour,

Tu peux utiliser le code ci-après

Sub NombredeCellulescouleurs()
Dim selection As Range
Dim Cellule As Range
Dim total As Variant
Set selection = Range("B2:D11")
For Each Cellule In selection
If Cellule.Interior.ColorIndex = 6 Then
total = total + Cellule.Count
End If
Next
MsgBox "Il y a " & total & " Cellules Jaunes"
End Sub

Le code est placé en VBA dans un module (ALT + F11, puis menu/insertion/module)

Pour exécuter la macro:

Menu/outils/macro/macro, sélectionne ta macro et clique sur exécuter.

Dans cette même fenêtre, tu peux aussi lui mettre un raccourci clavier en cliquant sur le bouton "option". Il suffira ensuite d'appuyer sur CTRL + lettre choisie pour exécuter cette macro.

A te lire

Dan

Merci pour cette reponse ultra rapide Dan !

Comment faire pour que la valeur de la macro (6 dans mon exemple) s'inscrive dans la cellule (B11).

En fait, je me suis mal exprime :

Je voudrais faire la somme des VALEUR CONTENUES DANS LES CELLULES JAUNE.

Cette somme (286 dans mon exemple) devra s'inscrire dans la cellule B11.

Excusez moi,j'ai un clavier anglais, c'est pas facile pour les accents !

Raphael

Re,

Remplace la macro par celle-ci dessous :

Sub NombredeCellulescouleurs()
 Dim selection As Range
 Dim Cellule As Range
 Dim total As Variant
 Set selection = Range("B2:D10")
 For Each Cellule In selection
 If Cellule.Interior.ColorIndex = 6 Then
 total = total + Cellule.Value
 End If
 Next
 Range("D11").Value = total
 End Sub

A te lire

Dan

Parfait.

Merci, encore pour les reponses ultra rapide, on est dimanche matin !

Raphael

Bonjour

Une autre solution déjà donnée sur le Forum

Code de Fonction personnalisée à copier dans un module

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

et formule à saisir en B11

=SommeSiCouleur($B$2:$D:$10;6)

6 étant le code couleur pour Jaune

Par rapport à la Macro précédente de Nad-Dan, il suffira d'écrire la formule =SommeSiCouleur(Champ;Code-Couleur) pour effectuer d'autres calculs du même type sur tous le classeur.

Fichier joint

https://www.excel-pratique.com/~files/doc/raphaelRetour.xls

Cordialement

Re,

Oui solution très intéressante aussi Amadeus puisque complètement intéractive avec chaque changment effectué.

Afin que Raphael comprenne les différences entre ta proposition et la mienne j'ai refait la macro en prenant les même variables que toi. Cela donne ceci :

Sub NombredeCellulescouleurs()
 Dim plage As Range, wcell As Range
 Dim sommesicouleur As Variant
 Set plage = Range("B2:D10")
 For Each wcell In plage
 If wcell.Interior.ColorIndex = 6 Then
sommesicouleur = sommesicouleur + wcell.Value
 End If
 Next
 Range("B11").Value = sommesicouleur
 End Sub

Bon dimanche

Dan

Je suis anfin arriver a faire marcher vos macro.

En fait c'etait la premiere fois que j'en faisais.

Maintenant il me manque les codes couleurs !!

J'ais chercher partout sur le forum et aussi sur l'aide excel, je ne trouve pas.

Un grand merci a tous.

Raphael

Salut le forum

Petite précision, les macros données ci-haut ne fonctionnent pas avec une

mise en forme conditionnelle sur les cellules.

Mytå

Bonjour

Pour abonder dans le sens de Mytå, ci-joint un autre fichier avec la palette 56 couleurs d'Excel et en A4 une cellule en MFC sur laquelle on voit bien que les fonctions "Couleur" sont inopérantes.

https://www.excel-pratique.com/~files/doc/WA2lVCodesCouleurs.xls

Cordialement

Rechercher des sujets similaires à "somme condition format"