SOMME.SI critère couleur

Fermé
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009 - 13 mai 2009 à 15:28
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009 - 14 mai 2009 à 11:54
Bonjour,

J'aimerais utiliser la fonction SOMME.SI avec comme critère la couleur des chiffres.
comment dois-je l'écrire ?
=SOMME.SI(.......)

Je veux additionner les chiffres rouges de la colonne A1 à A10 par exemple (seulement s'ils sont rouges)

et comment je fais pour utiliser une autre couleur que j'ai défini moi-même en fonction du RVB ???

Merci

13 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
13 mai 2009 à 15:38
bonjour,

la couleur rouge de tes chiffres est elle manuelle ou venant d'une mise en forme conditionnelle (suite à ton 1° post de tout à l'heure) ?

2
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009
13 mai 2009 à 16:30
MICHEL si tu pouvais m'éclaircir, se serait apprécié.

merci
0
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009
13 mai 2009 à 15:44
Bonjour,

Elle vient d'une macro associé à une case à cocher. Quand je coche la case mon chiffre devient rouge. Cependant j'aimerai pouvoir utiliser une autre couleur que j'ai défini dans ma barre de couleur.

Voila et j'aimerais qu'une cellule additionne toute mes chiffres pour lesquels j'ai cocher la case.

Merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
13 mai 2009 à 15:51
Voila les différents codes de couleur utilisés en VBA
https://www.cjoint.com/?fnpWeKdUAL

Pourrais tu montrer ta macro, s'il te plait?
0
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
13 mai 2009 à 16:30
Michel

voici le code de ma case à cocher

Private Sub CheckBox1_Click()
If Checkbox1.Value = True Then
[F56] = [D56]
[J56].Font.ColorIndex = 3

Else
[F56] = ""
[J56].Font.ColorIndex = 0
End If
End Sub

j'aimerais donc additionner les cellules J pour lesquelles seulement j'ai cocher la case donc qui est de couleur ?

ma question est donc puisque je n'y connais rien en VBA, comment j'écris la formule de la somme avec une couleur à numéro VBA ? et ensuite comment j'associe ce code avec ma cellule ou je veux que l'addition se fasse.

Merci d'être précis car je n'y connais vraiment rien ....
0
qmike Messages postés 1506 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 18 juin 2012 594
13 mai 2009 à 15:48
bonjour
sous excel
Il n'y a pas de formules en standard qui permettent de totaliser les cellules colorées
En revanche,
Tu peux passer par le biais de VBA

Regarde ici un exemple

http://bvrve.club.fr/Astuces_Michel/05excelvba.html#Color1

bonne journée
0
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009
13 mai 2009 à 15:59
Je te remercie mike mais si je veux pas utiliser le rouge je fais comment ??

comment j'écris le code ?

Michel

voici le code de ma case à cocher

Private Sub CheckBox1_Click()
If Checkbox1.Value = True Then
[F56] = [D56]
[J56].Font.ColorIndex = 3

Else
[F56] = ""
[J56].Font.ColorIndex = 0
End If
End Sub

j'aimerais donc additionner les cellules J pour lesquelles seulement j'ai cocher la case donc qui est de couleur ?

ma question est donc puisque je n'y connais rien en VBA, comment j'écris la formule de la somme avec une couleur à numéro VBA ? et ensuite comment j'associe ce code avec ma cellule ou je veux que l'addition se fasse.

Merci d'être précis car je n'y connais vraiment rien ....
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
13 mai 2009 à 16:33
Bon!

Il y a quelques petits trucs à améliorer dans ta macro checkbox mais pas grave!

le mieux, si tu es limite en vbA, serait que tu joignes la feuille de ton classeur avec les checkboxe sur
https://www.cjoint.com/
et tu colles le lien proposé dans ton message
0
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
13 mai 2009 à 16:50
le problème c'est qu'elle n'est pas fini, je voulais comprendre le principe afin de faire tout le tableau ensuite car j'ai une centaine de checkbox a faire,

ya vraiment pas un code que tu peux m'écrire avec un exemple de couleur et de case que je pourrais ajuster après ?

si j'ai le code écrit je pourrai me débrouiller, mais j'ai besoin d'un exemple avec plusieurs cellule et une couleur en chiffre VBA.

disons que je veux additionner les cellules A56 a J56 parmi lesquels les chiffres sont marron couleur 53

merci de ton aide
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009
13 mai 2009 à 17:39
Re,

Voici une fonction qui te calcule automatiquement la somme des "marron53"

Function additionner_marron(plage As Range)
Dim cellule As Range, total As Double
For Each cellule In plage
If cellule.Font.ColorIndex = 53 Then
total = total + cellule
End If
Next
additionner_marron = total
End Function


installation:
c'est à copier-coller dans un module de VBE. TU as le comment faire dans la rubrique "astuces" de CCM rédigé par notre ami gbinforme (c'est bien ton article gbinforme, merci)
http://www.commentcamarche.net/faq/sujet 8130 mise a jour d une procedure ou d une fonction en vba

ensuite
insertion-fonctions-fonctions personnalisées tu cliques sur "additionner_marron" et tu sélectionnes la plage
(A56:J56) dans ton message


les checkbox:
il faut que je recherche dans mon grenier doliprane une technique pour les 100 Checkbox; donc certainement demain...
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
13 mai 2009 à 18:10
Bonsoir,

J'avais préparé un truc mais michel a été plus rapide que moi...
Je le met quand même et en plus ça me dispense des explications complètes qu'il vient de te fournir.

La différence avec la macro de michel c'est que, pour apporter plus de souplesse vu ton indécision sur les couleurs, tu peux la définir dans une cellule. Et michel t'a fait une fonction personnalisée, ici c'est une macro à lancer.

Choisi une cellule sur ta feuille, K1 par exemple, et tu nommes ta cellule Total1 (respecte la majuscule).
Tu colles ce code comme t'a expliqué michel au-dessus :
Sub total1()
    Dim c As Range, tot1 As Double
    For Each c In [J56:J58]
        If c.Interior.ColorIndex = Range("Total1").Interior.ColorIndex Then
            tot1 = tot1 + c.Value
        End If
    Next c
    Range("Total1").Value = tot1
End Sub


Tu mets ta couleur de fond dans K1, tu lances la macro, le total des cellules (dans J56:J58) ayant la même couleur de fond que K1 est mis dans K1.
exemple

eric
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024
13 mai 2009 à 18:28
Re, Eric

En définitive j'ai laissé tomber la fonction pour revenir à 1 sub pramétrée car la fonction se déclenchait chaque fois que l'on cochait ou décochait avec des résultats aberrants!

donc dans le module1 on a:
Sub additionner_53(plage As String)
Dim cellule As Range, total As Double
For Each cellule In Range(plage)
If cellule.Font.ColorIndex = 53 Then
total = total + cellule
End If
Next
Range("K56") = total
End Sub


et dans le modulefeuil1:
Private Sub CheckBox1_Click()

If CheckBox1 Then
[F56] = [D56]
[J56].Font.ColorIndex = 53
Else
[F56] = ""
[J56].Font.ColorIndex = vbnothing
End If
additionner_53 ("A56:J56")
End Sub

ci joint tit'  démo

https://www.cjoint.com/?fnswKQcqWS

Le gros boulot reste le paramétrage des 100 Checkbox mais j'ai pas envie, Asfero, de t'embarquer dans des modules de classe... A moins qu'Eric ou qqn d'autre connaisse une astuce pour faire ces paramétrages tranquillou...


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
qmike Messages postés 1506 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 18 juin 2012 594
13 mai 2009 à 16:06
pas grave tu mets le code couleur correspondant à la couleur souhaitée
0
qmike Messages postés 1506 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 18 juin 2012 594
13 mai 2009 à 16:06
Pour obtenir tous les codes couleurs
Exécuté la macro suivante

Sub Affiche_couleurs()
For i = 1 To 56
Cells(i, 1).Interior.ColorIndex = i
Next i
End Sub
0
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009
13 mai 2009 à 16:10
Salut mike

voici le code que tu me proposes

Sub TotalisationCouleurRouge()

Set Aselectionner = Application.InputBox _
(prompt:="selectionner la plage de cellule ", _
Title:=" Plage de cellules à sélectioner", Type:=8)
Aselectionner.Select 'Selection de la plage souhaitée
For Each cel In Aselectionner
If cel.Interior.ColorIndex = 3 Then SomRouge = SomRouge + cel
Next cel
MsgBox SomRouge
End Sub

je fais quoi quand il est écrit CouleurRouge
SomRouge ???

et comment j'écris la plage de mes cellules quand c'est écrit
"selectionner la plage de cellule "
" Plage de cellules à sélectioner"

merci
0
qmike Messages postés 1506 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 18 juin 2012 594
13 mai 2009 à 16:12
lors de l 'exécution de la macro
Tu sélectionnes les cellules à totaliser
dans cet exemple, tu auras un total des cellules rouges
0
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009
13 mai 2009 à 16:19
tu peux m'expliquer la procédure pour faire une macro en VBA dans une cellule car je n'y arrive pas.

j'ouvre VBA, je vais dans insertion, puis module, mais ensuite, j'ai pas d'option pour sélectionner des cellules,

merci d'être plus précis stp.

je rapelle que je n'y connais rien alors me dire d'aller la , ca ne m'aide pas....
0
qmike Messages postés 1506 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 18 juin 2012 594
13 mai 2009 à 16:21
ecoute apparement tu ne fais pas les procedures cités sur les posts précédents
N'essais pas de compliqué
Donc on arrete la !!!

bonne soirée
0
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009
13 mai 2009 à 16:29
Salut,

ce dont j'ai besoin c'est d'explication clair car je n'y connais rien, pas des renvoies à des explications générales.

j'ai besoin de comprendre avec mes données pas des données générales, car je ne sais pas comment écrire les codes....

voila tout
0
qmike Messages postés 1506 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 18 juin 2012 594
13 mai 2009 à 18:41
dans ce cas, posts ton fichier sur

https://www.cjoint.com/
0
Asfero Messages postés 22 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 19 mai 2009
14 mai 2009 à 11:54
WOAAAAA ok

Merci a vous deux!!!! malheureusement je manque de temps ces derniers jours pour essayer tout ca.

Je vous remercie de votre aide et vous allez me revoir si je n'y suis pas arrivé hehe.

Merci énormément !!!!!!!!!
0