Fonction somme.si avec condition couleur cell

Fermé
lotussss - 8 mai 2009 à 11:47
 lotussss - 10 mai 2009 à 09:42
Bonjour,

Est-il possible d'utiliser la condition de la couleur d'une cellule dans la fonction somme.si?

Merci.
A voir également:

13 réponses

Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
8 mai 2009 à 13:25
Salut,

En VBA, avec une fonction personnalisée ou macro, avec une formule, faut voir comment tu as colorisé tes cellules, si c’est avec une mise en forme conditionnelle, il est possible de récupérer la condition de cette mise en forme, le mieux est que tu mettes ton fichier sans données confidentielles sur le forum avec ce lien

https://www.cjoint.com/


A+

Un problème sans solution est un problème mal posé  (Einstein)
1
Merci,

J'ai découvert la fonction "formule" de la mise en forme conditionnelle qui m'a permis d'arriver à mes fins. Maintenant le hic c'est que je suis limitée à 3 conditions et que j'en ai besoin de 12 sur excel 2003. j'ai enregistré une macro qui utilise la mise en forme conditionnelle pour voir comment s'est rédigé et sur le même modèle j'ai essayé d'ajouter des lignes mais ça fonctionne pas...une idée pour résoudre ce problème?

Merci
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
8 mai 2009 à 14:29
Re,

Oui en VBA, quelles sont les conditions attrivuées à chaque couleur

A+

Un problème sans solution est un problème mal posé  (Einstein)
1
La couleur de la cellule depend d'une partie de l'intitulé d'un libellé qui se trouve en LC-2. D'ailleurs à ce sujet n'y a t-il pas comme sous excel 2007, la possibilité d'associer la mise en forme automatique à partir d'une partie d'un nom genre *nom* et non du nom exact?

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 > lotussss
8 mai 2009 à 15:17
bonjour tt le monde

pas trop compris ta demande:
associer la mise en forme automatique à partir d'une partie d'un nom genre *nom* et non du nom exact?
mise en forme conditionnelle plutôt qu'automatique ? (c'est pas pareil)

essaies cette syntaxe
if tonrésultat like "*nom*" then...
0
Bonjour,

J'ai fait un exemple avec des cellules colorées sur un tableau sur la plage F9:F11.
Lors de la coloration des cellules, j'ai enregistré une macro pour pouvoir récupérer la valeur (interior.color)
correspondant à la couleur : 255 pour rouge...
Ensuite, je fais un petit programme VBA qui parcourt ma zone et qui augmente une variable si la couleur est rouge......
Avec la formule if ou select case, on peut augmenter le nombre de couleur.

A +

Sub AJOUT()
Dim SOMME_ROUGE As Integer
Dim SOMME_JAUNE As Integer
Dim i As Integer

SOMME_ROUGE = 0
SOMME_JAUNE = 0


'Ma zone de saisie est F9:F11 et je parcours cette zone avec une boucle
For i = 9 To 11
Range("F" & i).Select

'255 couleur rouge
If Selection.Interior.Color = 255 Then
SOMME_ROUGE = SOMME_ROUGE + ActiveCell.Value
Else
SOMME_JAUNE = SOMME_JAUNE + ActiveCell.Value
End If
Next


'affectation des variables aux cellules contenant les résultats
Range("F12").Value = SOMME_ROUGE
Range("F13").Value = SOMME_JAUNE



End Sub
1
Merci Selba,

J'ai trouvé sur un site une programmation qui convient, un peu du genre de la tienne. Le problème se trouve maintenant dans le post ci -dessus. Si tu as une idée elle est très bienvenue!!

Merci
0
C'est la première fois que je participe à un forum.
Je ne sais pas s'il y a la possibilité que tu m'envoie un exemple.
Personnellement, je pense qu'il est possible de tout faire en VBA.
Suivant le contenu d'une cellule, je peux la colorer (ou en colorer une autre) en une couleur déterminée.
Je peux également faire la somme des cellules d'une couleur sans problème.
1
Merci Selba, ça marchait et voilà que la somme couleur ne marche plus...voici le fichier
0
lotussss > lotussss
8 mai 2009 à 18:03
ben apparemment faudrait utiliser une adresse mail ou msn...
0
lotussss > lotussss
8 mai 2009 à 18:08
apparemment la somme des couleurs ne fonctionne plus car les couleurs sont issues dela mise en forme conditionnelle...avec une coloration manuelle ça marche....c'est grave
0

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

Posez votre question
Dans cet exemple, j'ai une colonne (E) qui se colore en fonction d'une colonne située sur la gauche (B).
Je boucle sur ma zone et je colore en fonction du texte qui est écrit dans la colonne B.




Sub macro2()
'
'cellules qui contiennent prélèvement, virement ... B4:E17


'les cellules qui se colorent E4:E17

For i = 4 To 17
Range("E" & i).Select

valeur = Selection.Offset(0, -3).Value

Select Case valeur
Case "virement"
Range("E" & i).Interior.ColorIndex = 3
Case "prélèvement"
Range("E" & i).Interior.ColorIndex = 4
Case "remise"
Range("E" & i).Interior.ColorIndex = 5
Case Else
Range("E" & i).Interior.ColorIndex = 2
End Select

Next

End Sub
1
Merci beaucoup Selba c'est vraiment ça, c'est nickel!! sais tu parcontre comment je peux remettre le quadrillage autour des cellules?
0
Je ne comprend pas ta dernière question
0
Sorry j'ai dû fumer!!

ce que je voulais dire c'est que je suis limitée à 3 conditions et ça ne me convient pas car il m'en faudrait 12. Et lorsque l'on met en place une forme conditionnelle sur excel 2007 et pas sur 2003 comme je voudrais le faire, il existe une option qui dit au lieu "d'égal à", "parmi". Du coup il n'est pas obligatoire que le contenu de la cellule de reference soit exact mais une partie correspondant suffit.

Est ce plus clair?

Merci.
0
Selba > lotussss
8 mai 2009 à 16:34
Si tu trouves le moyen d'avoir un format conditionnel en fonction d'une partie du contenu d'une cellule, est-ce que tu auras toujours besoin de 12 couleurs ou 3 pourront te suffire ?
0
lotussss > Selba
8 mai 2009 à 16:44
Malheureusement il me faut les 12 et peut etre meme plus par la suite....
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
8 mai 2009 à 16:49
Lotus, excuses moi d'avoir encombré ce fil en essayant de t'aider avec une syntaxe fonctionnant suivant ta demande
mais, rassures-toi, je ne le ferai plus.
--
0
Ya aucun probleme; toutes les aides sont les bienvenues
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 > lotussss
8 mai 2009 à 18:12
merci, mais c'était déjà fait dans cette discussion

je vous signale que ce problème est très simple, niveau à peine débutant VBA...
0
lotussss > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
8 mai 2009 à 18:15
Si je demande de l'aide c'est que je sais pas faire ou que j'ai l'esprit trop tordu. Merci pour votre amabilité!
0
Désolé, je m'étais déconnecté.
Je m'étonne que ce forum ne permette pas d'envoyer une pièce jointe.
0
Est ce que ce code fabriqué de mes ptites mains est cohérent?

Sub macro2()
'
Range("E4:E17").Select
If Formula = "=RC[-3]=""virement""" Then
Interior.ColorIndex = 3
Else
If Formula = "=RC[-3]=""prélèvement""" Then
Interior.ColorIndex = 6
Else
If Formula = "=RC[-3]=""remise""" Then Interior.ColorIndex = 7
End If
End If

End Sub
0
Selba > lotussss
8 mai 2009 à 19:12
Si je comprend bien, tu as une colonne dont les cellules se colorent en fonction d'une colonne placée sur la gauche (du même nombre de cellules) et qui contient soit virement soit prélèvement soit remise ???
0
lotussss > Selba
8 mai 2009 à 19:16
Oui il y aura plus de conditions que ça à terme soit une douzaine. Mais ça ne fonctionne pas tel quel, une idée, j'ai dû faire des erreurs. Pour la suite, c'est à dire la somme des cellules par couleur j'ai trouvé un code tout près qui fonctionne bien à la condition que la cellule soit effectivement colorée et pas colorée virtuellement par une mise en forme conditionnelle, d'où ma recherche d'écriture...
0
lotussss > lotussss
8 mai 2009 à 19:19
j'aurais aimé également ne pas fixer un terme précis comme par ex "prélèvement" car souvent les banques mettent "prélèvement en votre faveur de untel" et pas "prélèvement" tout court
0
Bonjour,

Le bout de macro que je t'ai envoyé ne modifie pas le quadrillage.
Si tu le remets, il ne devrait pas changer à l'exécution de la macro

A plus
0
Je ne sais pas si çà peut t'aider pour ton programme, mais ce qui serait bien c'est d'affecter ta macro à un événement Worksheet_Change de manière à ce que à chaque fois que tu modifie une cellule avec l'ajout de virement, prélèvement..., la couleur se mette à jour automatiquement dans la cellule cible.

Du style:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Range("b4:b17")
If Not Application.Intersect(ActiveCell, Target) Is Nothing Then
'ici tu mets le nom de ta macro
End If
End Sub

code à disposer dans la feuille concernée

A plus
0
Merci c'est une bonne idée mais en general les mise à jour se font à la suite dans mon tableau, donc pas de risque d'ecraser les anciennes données, cela dit je prends bonnes notes! malheureusement la macro que tu m'a ecrite "supprime" le quadrillage d'excel sur les cellules concernées ou plutot je pense que ce sont des parametres de cellule à definir egalement en plus de la couleur....une idée? egalement si j'ai un terme tel que "virement de mr untel" ben ça ne reconnait pas le terme "virement" et ça c'est plus embetant.

Merci pour ton temps!
0
Essaie de créer une variable qui teste le contenu de ta cellule.
si ta cellule contient le mot prélèvement, elle prendra la valeur prélèvement .....
voir si dessous


Sub macro2()

Dim choix As String
Dim valeur As String


For i = 4 To 17
Range("E" & i).Select

valeur = Selection.Offset(0, -3).Value

If valeur Like "*virement*" Then
choix = "virement"
ElseIf valeur Like "*prélèvement*" Then choix = "prélèvement"
ElseIf valeur Like "*remise*" Then choix = "remise"
Else: choix = ""
End If


Select Case choix
Case "virement"
Range("E" & i).Interior.ColorIndex = 3
Case "prélèvement"
Range("E" & i).Interior.ColorIndex = 4
Case "remise"
Range("E" & i).Interior.ColorIndex = 5
Case Else
Range("E" & i).Interior.ColorIndex = 2
End Select

Next

End Sub
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 242
9 mai 2009 à 11:29
Bonjour à tous

il existe énormément de macros permettant des mises en forme conditionelles illimitées
en voici une dans les astuces
http://www.commentcamarche.net/faq/sujet 16784 excel mises en forme conditionnelles illimitees
en voici une autre donnée sur un autre forum mais non testée sur excel 2007
https://www.excel-downloads.com/threads/mfc-multiple-excel-2007-autre-facon.117709/
et en voici une autre avec des mises en forme conditionnelle tout azimut (MFC par image, par commentaires, sonores)
https://www.excel-downloads.com/threads/mfc-multiples-3-formats-et-autres-mfc.91849/
0
Salut Selba,

Merci beaucoup c'est tip top nickel!
0
Re Selba,

J'ai voulu mettre ta macro dans le module du classeur perso afin que cette macro soit disponible dans tous les classeurs. Depuis, chaque fois que je l'exécute un message d'erreur apparait : "erreur de complilation, variable non définie" en surlignant le "i" de "for i=4 to 17" en début de macro.
0
Dans VBA, il y a une option qui se place en début de module et qui oblige à déclarer les variables pour un code plus rigoureux.
Déclare la variable i
dim i as integer
0
lotussss > Gilles
10 mai 2009 à 09:42
Merci Gilles. Faudrait que jme trouve un bouquin pour me degrossir avec ce vocabulaire, en plus je suis nulle en anglais!
0