Somme si couleur

Résolu
ZbarbN Messages postés 7 Statut Membre -  
ZbarbN Messages postés 7 Statut Membre -
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

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      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
    2. ZbarbN Messages postés 7 Statut Membre
       
      Merci à tous pour vos réponse. J'ai opté pour la solution VBA et ça marche!
      0
  3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  4. ZbarbN Messages postés 7 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  7. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  8. ZbarbN Messages postés 7 Statut Membre
     
    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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Excuse moi de t'avoir dérangé alors
      je note ton pseudo pour ne pas renouveler cet impair
      0
    2. ZbarbN Messages postés 7 Statut Membre
       
      aucun dérangement, je l'avais précisé, toute aide était la bienvenue!
      Merci encore
      0