Somme si couleur

Résolu/Fermé
ZbarbN Messages postés 7 Date d'inscription lundi 19 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011 - 19 sept. 2011 à 16:02
ZbarbN Messages postés 7 Date d'inscription lundi 19 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011 - 20 sept. 2011 à 16:31
Bonjour,

Je souhaiterais, sous exel, faire la somme des chiffres écris en vert, cela est-il possible.

PS: je ne connais rien au langage VBA.

Merci d'avance.

7 réponses

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
19 sept. 2011 à 19:23
Bonsoir,

Ca ne peut être en fait qu'en vba.
Une proposition de fonction personnalisée à mettre dans un module.
Function sommeCouleurPolice(plage As Range, modèleCouleur As Range) As Double
    Dim couleur As Long, c As Range
    Application.Volatile
    couleur = modèleCouleur.Font.ColorIndex
    For Each c In plage
        If c.Font.ColorIndex = couleur And IsNumeric(c) Then sommeCouleurPolice = sommeCouleurPolice + c.Value
    Next c
End Function

Une fois mise dans le classeur ça s'utilise comme une fonction excel :
=sommeCouleurPolice(A1:B12;E1)
fait la somme des nombres de la plage A1:B12 dont la couleur de la police est la même que celle en E1.
Si tu changes la couleur d'un nombre ça ne génère pas d'évènement détectable.
F9 (recalcul) ou une saisie dans la feuille rafraichit le résultat.

Alt+F11 pour ouvrir vbe.
Clic-droit sur le projet (à gauche) et 'insertion / module', coller le code dans le module.
ex: http://www.cijoint.fr/cjlink.php?file=cj201109/cijibOAA4M.xls

eric
2
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 sept. 2011 à 11:55
Bonjour à tous

Avec XL2007

créer un filtre sur la zone de nombres (les nombres sont en B4:B10 pour exemple)
filtrer par couleur==> les cellules non vertes sont masquées
en dessous (b11 par ex) ou ailleurs du tableau,écrire
=SOUS.TOTAL(109;B4:B10)

109 indique que l'on additionne pas les cellules masquée


2
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 20/09/2011 à 12:18
Bonjour Michel,

On peut aussi utiliser : =SOUS.TOTAL(9;B4:B10)
(pour ne compter que les cellules non masquées avec XL2003 et au-delà....)
avec XL2007 pour le filtre sur la couleur.
0
ZbarbN Messages postés 7 Date d'inscription lundi 19 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
20 sept. 2011 à 15:52
Merci à tous pour vos réponse. J'ai opté pour la solution VBA et ça marche!
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
19 sept. 2011 à 17:22
Bonjour,

Je suppose que ce sont des nombres (et pas seulement des chiffres) qui sont écris en vert.

Sans utiliser le VBA, il faudrait savoir pourquoi ces nombres sont écris en vert.
S'agit-il d'une mise en forme conditionnelle ?
0
ZbarbN Messages postés 7 Date d'inscription lundi 19 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
19 sept. 2011 à 19:01
Ce sont effectivement des nombres.
Ces nombres sont en vert parce que je les ai mis volontairement de cette couleur. Le principe est de faire la somme des nombres que lorsque ceux ci ont été validés. J'avais donc choisi d'indiquer la validation par une couleur. Ce n'est pas une MFC, seulement une modification manuelle de la police des nombres.
Il est fort probable que ce ne soit pas la solution la plus simple mais c'est la seule qui m'est venue à l'esprit. Je suis ouvert à toute aide...
Merci d'avoir répondu si vite.
0

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

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
20 sept. 2011 à 11:39
Le plus simple est d'utiliser une colonne pour cocher les nombres validés dans la quelle il suffit de mettre un x.
C'est beaucoup plus pratique pour effectuer tous les traitements désirés.
Tu peux utiliser SOMME.SI pour les totaux et une MFC pour mettre en vert les nombres validés
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
20 sept. 2011 à 16:00
Re,

Bien sur que ça marche !!! Eric n'a pas l'habitude de répondre n'importe quoi !
Mais tu as dis toi-même : je ne connais rien au langage VBA
Est-ce bien raisonnable de choisir cette solution ?
La solution de michel me semble très simple et bien plus adaptée !
0
ZbarbN Messages postés 7 Date d'inscription lundi 19 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
20 sept. 2011 à 16:19
Même avec mes connaissances limitées j'ai réussi à entrer cette fonction en VBA donc...

J'ai pris le problème avec la première solution que l'on m'avait fourni et comme c'était la VBA je me suis lancé, avec succès!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 sept. 2011 à 16:23
Excuse moi de t'avoir dérangé alors
je note ton pseudo pour ne pas renouveler cet impair
0
ZbarbN Messages postés 7 Date d'inscription lundi 19 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
20 sept. 2011 à 16:31
aucun dérangement, je l'avais précisé, toute aide était la bienvenue!
Merci encore
0