Fonction somme.si avec condition couleur cell

lotussss -  
 lotussss -
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 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
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
lotussss
 
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 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
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
lotussss
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318 > lotussss
 
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
Selba
 
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
lotussss
 
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
Selba
 
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
lotussss
 
Merci Selba, ça marchait et voilà que la somme couleur ne marche plus...voici le fichier
0
lotussss > lotussss
 
ben apparemment faudrait utiliser une adresse mail ou msn...
0
lotussss > lotussss
 
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
Selba
 
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
lotussss
 
Merci beaucoup Selba c'est vraiment ça, c'est nickel!! sais tu parcontre comment je peux remettre le quadrillage autour des cellules?
0
Selba
 
Je ne comprend pas ta dernière question
0
lotussss
 
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
 
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
 
Malheureusement il me faut les 12 et peut etre meme plus par la suite....
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
lotussss
 
Ya aucun probleme; toutes les aides sont les bienvenues
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318 > lotussss
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention  
 
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
Selba
 
Désolé, je m'étais déconnecté.
Je m'étonne que ce forum ne permette pas d'envoyer une pièce jointe.
0
lotussss
 
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
 
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
 
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
 
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
Selba
 
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
Selba
 
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
lotussss
 
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
Selba
 
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 912 Statut Contributeur 245
 
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
lotussss
 
Salut Selba,

Merci beaucoup c'est tip top nickel!
0
lotussss
 
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
Gilles
 
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
 
Merci Gilles. Faudrait que jme trouve un bouquin pour me degrossir avec ce vocabulaire, en plus je suis nulle en anglais!
0