Somme si couleur

Résolu
ZbarbN Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
ZbarbN Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
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.

A voir également:

7 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
Merci à tous pour vos réponse. J'ai opté pour la solution VBA et ça marche!
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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   Statut Membre Dernière intervention  
 
aucun dérangement, je l'avais précisé, toute aide était la bienvenue!
Merci encore
0