Rechercher : dans
Par :

Fonction somme.si avec condition couleur cell

Dernière réponse le 10 mai 2009 à 09:42:33 lotussss, le 8 mai 2009 à 11:47:26 
 Signaler ce message aux modérateurs

Bonjour,

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

Merci.

Configuration: Windows Vista Internet Explorer 7.0

Meilleures réponses pour « fonction somme.si avec condition couleur cell » dans :
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...
[VBA] Fonction qui retourne la couleur active d'une MFC VoirCette fonction retourne la valeur du format actif d'une mise en forme conditionnelle. Avec la fonction de la démo, deux valeurs peuvent êtres retournées. Mode = 0 : retourne la valeur de Interior.ColorIndex Mode = 1 : retourne la valeur de...

1

Mike-31, le 8 mai 2009 à 13:25: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

http://www.cjoint.com/


A+

Un problème sans solution est un problème mal posé  (Einstei­n)

Répondre à Mike-31

2

lotussss, le 8 mai 2009 à 14:15:42

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

Répondre à lotussss

3

Mike-31, le 8 mai 2009 à 14:29:10

Re,

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

A+

Un problème sans solution est un problème mal posé  (Einstei­n)

Répondre à Mike-31

4

lotussss, le 8 mai 2009 à 14:38:11

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.

Répondre à lotussss

8

michel_m, le 8 mai 2009 à 15:17:13

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... Cordialement, Michel

Répondre à michel_m

5

Selba, le 8 mai 2009 à 14:38:32
  • +1

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

Répondre à Selba

6

lotussss, le 8 mai 2009 à 14:41:58

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

Répondre à lotussss

7

Selba, le 8 mai 2009 à 14:49:54

Je ne comprend pas ta dernière question

Répondre à Selba

9

lotussss, le 8 mai 2009 à 16:10:17

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.

Répondre à lotussss

10

Selba, le 8 mai 2009 à 16:34:23

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 ?

Répondre à Selba

11

lotussss, le 8 mai 2009 à 16:44:53

Malheureusement il me faut les 12 et peut etre meme plus par la suite....

Répondre à lotussss

12

michel_m, le 8 mai 2009 à 16:49:40

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.
--

Répondre à michel_m

13

lotussss, le 8 mai 2009 à 16:59:20

Ya aucun probleme; toutes les aides sont les bienvenues

Répondre à lotussss

18

michel_m, le 8 mai 2009 à 18:12:01

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... Cordialement, Michel

Répondre à michel_m

19

lotussss, le 8 mai 2009 à 18:15:04

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é!

Répondre à lotussss

14

Selba, le 8 mai 2009 à 17:07:28
  • +1

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.

Répondre à Selba

15

lotussss, le 8 mai 2009 à 18:01:05
  • +1

Merci Selba, ça marchait et voilà que la somme couleur ne marche plus...voici le fichier

Répondre à lotussss

16

lotussss, le 8 mai 2009 à 18:03:15

Ben apparemment faudrait utiliser une adresse mail ou msn...

Répondre à lotussss

17

lotussss, le 8 mai 2009 à 18:08:14

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

Répondre à lotussss

20

Selba, le 8 mai 2009 à 18:55:05

Désolé, je m'étais déconnecté.
Je m'étonne que ce forum ne permette pas d'envoyer une pièce jointe.

Répondre à Selba

21

lotussss, le 8 mai 2009 à 19:02:53

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

Répondre à lotussss

22

Selba, le 8 mai 2009 à 19:12:18

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 ???

Répondre à Selba

23

lotussss, le 8 mai 2009 à 19:16: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...

Répondre à lotussss

24

lotussss, le 8 mai 2009 à 19:19:00

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

Répondre à lotussss

25

Selba, le 8 mai 2009 à 19:44:12

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

Répondre à Selba

26

lotussss, le 9 mai 2009 à 09:37:31

Merci beaucoup Selba c'est vraiment ça, c'est nickel!! sais tu parcontre comment je peux remettre le quadrillage autour des cellules?

Répondre à lotussss

27

Selba, le 9 mai 2009 à 10:09:25

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

Répondre à Selba

28

Selba, le 9 mai 2009 à 10:43:11

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

Répondre à Selba

29

lotussss, le 9 mai 2009 à 10:49:42

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!

Répondre à lotussss

30

Selba, le 9 mai 2009 à 11:17:05

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

Répondre à Selba

31

wilfried_42, le 9 mai 2009 à 11:29:48

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
http://www.excel-downloads.com/forum/117709-mfc-multiple-exc­el-2007-autre-fa.html
et en voici une autre avec des mises en forme conditionnelle tout azimut (MFC par image, par commentaires, sonores)
http://www.excel-downloads.com/... Cordialement
Wilfried

ps: n'oubliez pas de mettre votre fil sur résolu quand vous ­obtenez ce que vous cherchez. Merci

Répondre à wilfried_42

32

lotussss, le 10 mai 2009 à 08:04:25

Salut Selba,

Merci beaucoup c'est tip top nickel!

Répondre à lotussss

33

lotussss, le 10 mai 2009 à 09:33:07

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.

Répondre à lotussss

34

Gilles, le 10 mai 2009 à 09:38:32

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

Répondre à Gilles

35

 lotussss, le 10 mai 2009 à 09:42:33

Merci Gilles. Faudrait que jme trouve un bouquin pour me degrossir avec ce vocabulaire, en plus je suis nulle en anglais!

Répondre à lotussss
Collection CommentÇaMarche.net