Excel, somme cellules uniques texte en couleur

Résolu/Fermé
jps.forum
Messages postés
49
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
7 janvier 2015
- Modifié le 2 déc. 2007 à 21:30
 Akjmr24 - 6 févr. 2020 à 11:51
Bonjour,
Pour la gestion d'une association, j'enregistre dans une colonne les dépenses (chiffres en noir dans la cellule). Quand je reçois le relevé de banque je passe les débits en bleu ou en rouge.

Question comment faire pour avoir uniquement la somme des cellules avec les montants en rouge, idem pour celles en bleu, idem pour celle en noir.
Merci pour vos réponses

Jean Paul

19 réponses

gbinforme
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 615
30 nov. 2007 à 18:53
bonjour

Il n'existe pas de fonction permettant de cumuler en fonction des couleurs de la police mais c'est possible avec une fonction personnalisée à mettre dans un module
Public Function cumul_couleur(plage As Range, col As Range)
Dim elm As Object
Application.Volatile
cumul_couleur = 0
For Each elm In plage
    If elm.Font.ColorIndex = col.Font.ColorIndex Then
        cumul_couleur = cumul_couleur + elm.Value
    End If
Next elm
End Function

Pour insérer cette fonction voir l'aide

Pour appeler cette fonction : cumul_couleur(plage à cumuler, cellule avec la couleur à cumuler)
7
salut gbinforme
Lorsque je fais un copie colle de ta fonction j'ai un message suivant
il est impossible de traiter votre question. soit microsoft excel ne trouve pas de fonction equivalente soit l'aide n'est pas installé..pourquoi..la fonction n'est pas bonne ou dois je activer quelque chose dans excel.
Merci pour ta réponse
0
gbinforme
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 615
11 juin 2012 à 21:22
bonjour lasconi88,

Tu n'as certainement pas tout lu correctement :
- la fonction est à mettre dans un module.
- si tu veux utiliser une macro il faut bien sûr qu'elles soient activées.
- une fonction ne pose jamais de question.

Tu as une procédure pour insérer correctement ta macro : l'as-tu regardée ?
0
Bonjour et merci pour ta réponse,

Voilà ce que j'ai fait:

Dans la fenêtre Microsoft bvisual basic, j'ai créé un module (en faisant insertion module) - une ligne Module1 apparait dans l'arborescence - après un double click sur la ligne module1, j'ai fait un copié collé de la fonction que j'ai reprise ci-dessus

Public Function cumul_couleur(plage As Range, col As Range)
Dim elm As Object
Application.Volatile
cumul_couleur = 0
For Each elm In plage
If elm.Font.ColorIndex = col.Font.ColorIndex Then
cumul_couleur = cumul_couleur + elm.Value
End If
Next elm
End Function

Ensuite j'ai fait, toujours dans la fenêtre Microsoft bvisual basic : fichiers / enregistrer "essai.xls
Ensuite je vais dans mon fichier "essai.xls"
Dans une case quelconque de mon fichier, je fais, Insertion Fonction, dans la fenêtre "insérer une fonction " qui s'ouvre, je choisi la catégorie "personnalisée" qui se trouve en fin de liste et là dans la fenêtre "sélectionner une fonction" apparaît la fonction "essai.xls!Module2.cumul_couleur" avec en bas le fameux message
"impossible de traiter votre question. soit microsoft excel ne trouve pas de fonction equivalente soit l'aide n'est pas installé"

J'ai zappé quelque chose
C'est quoi l'idée de macro dans tout ça?

Merci d'avance
0
gbinforme
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 615
12 juin 2012 à 18:34
bonjour lasconi88,

Tu fonctionnes avec quelle version d'exel ?

En fait il faut que le module où tu mets la fonction soit :
- le classeur où tu veux l'utiliser
- ou bien ton classeur "PERSO.xls"
0
merci pour tes infos
Cela fonctionne
0