A voir également:
- Excel somme si couleur police
- Excel compter cellule texte couleur - Meilleures réponses
- Somme si couleur police - Meilleures réponses
- Excel, somme cellules uniques texte en couleur ✓ - Forum - Excel
- Somme en fonction de la couleur du texte de la cellule ✓ - Forum - Excel
- Somme des montants de cellules selon la couleur du texte - Forum - Excel
- EXCEL: Compter ou additionner les cellules colorisées manuellement - Conseils pratiques - Excel
- NB.SI critère couleur ✓ - Forum - Excel
19 réponses
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
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
Pour insérer cette fonction voir l'aide
Pour appeler cette fonction : cumul_couleur(plage à cumuler, cellule avec la couleur à cumuler)
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)
ckaphy
Merci,
Mais je suis un simple débutant en VBA, c'est pas première macro et j'ai un peu de mal à ré-écrire la fonction.
En gros, je galère depuis 20 minutes
Pourriez vous m'aider en m'écrivant dans son intégralité la nouvelle fonction.
D'avance MERCI.
Mais je suis un simple débutant en VBA, c'est pas première macro et j'ai un peu de mal à ré-écrire la fonction.
En gros, je galère depuis 20 minutes
Pourriez vous m'aider en m'écrivant dans son intégralité la nouvelle fonction.
D'avance MERCI.
jps.forum
- Messages postés
- 49
- Date d'inscription
- jeudi 29 novembre 2007
- Statut
- Membre
- Dernière intervention
- 7 janvier 2015
Merci gbinforme pour ta réponse
Je maitrise bien excel 2003 mais c'est ma première macro!!
J'ai fais:
- outil, macros, nouvelle macros, nommer la macro (SCR), ok, la pettite fenêtre s'affiche, arreter l'enregistrement.
- outil, macros, macro, SCR, exécuter.
- dans Microsoft VB, "module 2", j'ai collé la macro.
Pour info, la plage des cellules dans la quelle je veux faire la somme des cellules (chiffre police rouge) est D18:AA225,
la cellule ou la somme doit s'afficher est F3.
Comment fait-on pour lancer la macro?
je viens de faire un contrôle et, outil, macros, macro il n'y a rien!!, j'ai du faire des bêtises......
comment fait-on pour tout supprimer ?
Merci pour la réponse
Je maitrise bien excel 2003 mais c'est ma première macro!!
J'ai fais:
- outil, macros, nouvelle macros, nommer la macro (SCR), ok, la pettite fenêtre s'affiche, arreter l'enregistrement.
- outil, macros, macro, SCR, exécuter.
- dans Microsoft VB, "module 2", j'ai collé la macro.
Pour info, la plage des cellules dans la quelle je veux faire la somme des cellules (chiffre police rouge) est D18:AA225,
la cellule ou la somme doit s'afficher est F3.
Comment fait-on pour lancer la macro?
je viens de faire un contrôle et, outil, macros, macro il n'y a rien!!, j'ai du faire des bêtises......
comment fait-on pour tout supprimer ?
Merci pour la réponse
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
bonjour
Pour appeler cette fonction : cumul_couleur(plage à cumuler, cellule avec la couleur à cumuler)
Pour info, la plage des cellules dans la quelle je veux faire la somme des cellules (chiffre police rouge) est D18:AA225,
la cellule ou la somme doit s'afficher est F3.
Tu remplaces A1 par une cellule, n'importe laquelle qui ait la police en rouge, car c'est pour récupérer le code couleur et tu peux la prendre dans la plage de cumuls mais une seule cellule.
Pour les "bleus" tu remplaces A1 par une cellule qui ait la police en bleu et idem pour les noirs ou d'autres couleurs.
Attention c'est l'index de couleur exact qui est pris en compte et si tu as des bleus clairs, marine et autres, seules les polices avec le "bon" bleu, celui de la cellule choisie, seront pris en compte.
Comment fait-on pour lancer la macro?
On ne la lance pas elle fonctionne exactement comme une autre fonction, SOMME par exemple et si tu passes une cellule en police rouge le résultat se mettra à jour automatiquement si tu es en calcul automatique sinon avec F9.
Pour appeler cette fonction : cumul_couleur(plage à cumuler, cellule avec la couleur à cumuler)
Pour info, la plage des cellules dans la quelle je veux faire la somme des cellules (chiffre police rouge) est D18:AA225,
la cellule ou la somme doit s'afficher est F3.
en F3 =cumul_couleur( D18:AA225;A1)
Tu remplaces A1 par une cellule, n'importe laquelle qui ait la police en rouge, car c'est pour récupérer le code couleur et tu peux la prendre dans la plage de cumuls mais une seule cellule.
Pour les "bleus" tu remplaces A1 par une cellule qui ait la police en bleu et idem pour les noirs ou d'autres couleurs.
Attention c'est l'index de couleur exact qui est pris en compte et si tu as des bleus clairs, marine et autres, seules les polices avec le "bon" bleu, celui de la cellule choisie, seront pris en compte.
Comment fait-on pour lancer la macro?
On ne la lance pas elle fonctionne exactement comme une autre fonction, SOMME par exemple et si tu passes une cellule en police rouge le résultat se mettra à jour automatiquement si tu es en calcul automatique sinon avec F9.
LL
Voilà ce forum m'a donné toutes les douces réponses à mes questions ;) j'en suis arrivé à ça :
Outils/macro/Visual Basic Editor ---> Insertion/module
Pour trouvé la somme des cellules contenant des chiffres avec le même format que A1 :
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
If IsNumeric(elm.Value) Then cumul_couleur = cumul_couleur + elm.Value
End If
Next elm
End Function
Et pour trouvé le nombre de cellule contenant des chiffres avec le même format que A1 :
Public Function cumulcouleur(plage As Range, col As Range)
Dim elm As Object
Application.Volatile
cumulcouleur = 0
For Each elm In plage
If elm.Font.ColorIndex = col.Font.ColorIndex Then
'cumulcouleur = cumulcouleur + 1
If IsNumeric(elm.Value) Then cumulcouleur = cumulcouleur + 1
End If
Next elm
Ensuite il m'a suffit d'ajouter dans n'importe qu'elle cellule de ma feuille soit
=cumul_couleur(A1:A22;A1)
soit
=cumulcouleur(A1:A22;A1)
En fonction de mes envies ! :)
Voili voilà j'espère que j'ai pu t'aider !
Bonne journée !
Outils/macro/Visual Basic Editor ---> Insertion/module
Pour trouvé la somme des cellules contenant des chiffres avec le même format que A1 :
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
If IsNumeric(elm.Value) Then cumul_couleur = cumul_couleur + elm.Value
End If
Next elm
End Function
Et pour trouvé le nombre de cellule contenant des chiffres avec le même format que A1 :
Public Function cumulcouleur(plage As Range, col As Range)
Dim elm As Object
Application.Volatile
cumulcouleur = 0
For Each elm In plage
If elm.Font.ColorIndex = col.Font.ColorIndex Then
'cumulcouleur = cumulcouleur + 1
If IsNumeric(elm.Value) Then cumulcouleur = cumulcouleur + 1
End If
Next elm
Ensuite il m'a suffit d'ajouter dans n'importe qu'elle cellule de ma feuille soit
=cumul_couleur(A1:A22;A1)
soit
=cumulcouleur(A1:A22;A1)
En fonction de mes envies ! :)
Voili voilà j'espère que j'ai pu t'aider !
Bonne journée !
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
Bonjour,
Effectivement la demande était " la somme des cellules avec les montants en rouge" et si tu veux compter le nombre de cellules d'une couleur, tu remplaces :
Effectivement la demande était " la somme des cellules avec les montants en rouge" et si tu veux compter le nombre de cellules d'une couleur, tu remplaces :
cumul_couleur = cumul_couleur + elm.Valuepar
cumul_couleur = cumul_couleur + 1et si tu veux compter les fonds au lieu des polices tu remplaces "Font" par "Interior"
jps.forum
- Messages postés
- 49
- Date d'inscription
- jeudi 29 novembre 2007
- Statut
- Membre
- Dernière intervention
- 7 janvier 2015
Merci gbinforme ça marche......
Une autre question peut-on renommer la macro? en SCR par exemple et comment faire?
Si j'ai bien compris quand je change la couleur d'une cellule le recalcul n'est pas lancé automatiquement.
Il me semble qu'il existe un raccourci clavier pour lancer un recalcul de la feuille tu le connais?
Merci encore pour ton aide
Jean Paul
Une autre question peut-on renommer la macro? en SCR par exemple et comment faire?
Si j'ai bien compris quand je change la couleur d'une cellule le recalcul n'est pas lancé automatiquement.
Il me semble qu'il existe un raccourci clavier pour lancer un recalcul de la feuille tu le connais?
Merci encore pour ton aide
Jean Paul
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
bonjour
Une autre question peut-on renommer la macro? en SCR par exemple et comment faire?
La macro qui s'appelle "cumul_couleur" peut être renommée en "SCR" et pour cela il faut ouvrir l'éditeur VBA puis sur la feuille qui la contient faire menu edition / remplacer ou ctrl + h et remplacer tout puis changer les appels formules.
Il me semble qu'il existe un raccourci clavier pour lancer un recalcul de la feuille tu le connais?
oui tout à fait comme je t'avais dit " si tu es en calcul automatique sinon avec F9. " Pour mettre le calcul automatique, menu outils / options /onglet calcul et cocher automatique puis "ok". Ensuite, dès que tu colores c'est à jour !
Une autre question peut-on renommer la macro? en SCR par exemple et comment faire?
La macro qui s'appelle "cumul_couleur" peut être renommée en "SCR" et pour cela il faut ouvrir l'éditeur VBA puis sur la feuille qui la contient faire menu edition / remplacer ou ctrl + h et remplacer tout puis changer les appels formules.
Il me semble qu'il existe un raccourci clavier pour lancer un recalcul de la feuille tu le connais?
oui tout à fait comme je t'avais dit " si tu es en calcul automatique sinon avec F9. " Pour mettre le calcul automatique, menu outils / options /onglet calcul et cocher automatique puis "ok". Ensuite, dès que tu colores c'est à jour !
jps.forum
gbinforme le recalcul ne marche pas
Je suis bien en calcul auto!!!, si je fais F9 c'est pareil pas de recalcul.
Il faut que je ferme excel et le relancer pour qu'il y est un recalcul
Par contre si je suis dans: outil - option - calcul et je fais un clic sur calculer maintenant, ça fait un recalcul.
à+
Je suis bien en calcul auto!!!, si je fais F9 c'est pareil pas de recalcul.
Il faut que je ferme excel et le relancer pour qu'il y est un recalcul
Par contre si je suis dans: outil - option - calcul et je fais un clic sur calculer maintenant, ça fait un recalcul.
à+
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
bonjour
je fais un clic sur calculer maintenant, ça fait un recalcul. si je fais F9 c'est pareil pas de recalcul.
Curieux car ta touche F9 ne doit pas fonctionner car si tu regardes c'est "calculer maintenant (F9)"
Même en calcul automatique il est possible que le changement de couleur ne déclenche pas le calcul mais F9 devrait.
Essaie de faire F2 et entrée sur n'importe qu'elle cellule, cela devrait aussi déclencher le calcul.
je fais un clic sur calculer maintenant, ça fait un recalcul. si je fais F9 c'est pareil pas de recalcul.
Curieux car ta touche F9 ne doit pas fonctionner car si tu regardes c'est "calculer maintenant (F9)"
Même en calcul automatique il est possible que le changement de couleur ne déclenche pas le calcul mais F9 devrait.
Essaie de faire F2 et entrée sur n'importe qu'elle cellule, cela devrait aussi déclencher le calcul.
christobald2
Bonjour gbinforme,
en exécutant tes consignes, je n'arrive pas à obtenir un résultat.
L'erreur qui m'est affichée est "Erreur due à un nom non valide".
J'ai pourtant collé la macro dans le module 2, et fait appel à la finction dans la cellule : =cumul_couleur(A2:A5;A1)
Merci de ton aide
Christophe
en exécutant tes consignes, je n'arrive pas à obtenir un résultat.
L'erreur qui m'est affichée est "Erreur due à un nom non valide".
J'ai pourtant collé la macro dans le module 2, et fait appel à la finction dans la cellule : =cumul_couleur(A2:A5;A1)
Merci de ton aide
Christophe
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
bonjour
Tu as quelle version excel ?
L'erreur t'ai affichée pour quelle action ?
Tu as quelle version excel ?
L'erreur t'ai affichée pour quelle action ?
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
bonjour
As-tu inséré la fonction dans un module ?
As-tu inséré la fonction dans un module ?
Manuesunny
Bonjour je viens de lire tout ce que vous avez discuter, j'ai le même problème, je ne sais pas comment additionner les couleurs. C'est pour mon travail et surtout pour faire des statistique. Je travail pour en entrepreneur en Excavation, on fait des ponts, des ponceaux, des routes, des égout et de l'aqueduc, en gros. Quand on soumission on estime une somme de sable, de pierre, de tuyaux, tout ses chiffres se retrouve dans un tableur excel, on met en couleur le sable, la pierre, les tuyaux ... et j'aimerais bien me faire un sommaire dans se même classeur pour additionner les quantités approximative. Je suis très bonne en excel, mais niveau macro sa ne fonctionne pas. Je ne sais pas si cela te dérangerais de me faire du step by step pour que je puisse enfin réeussir. Je suis en excel 2003, j'ai compris le principe de ta fonction, c'est que je ne suis pas capable de la copier dans VBA. Je te demande ton aide svp ! Un gros Merci d'avance !
Sun
Sun
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
bonjour
Tu devrais essayer cette procédure et comme c'est une fonction, tu dois l'ins"rer dans un module que tu crées par insertion.
Si tu as un blocage tu n'hésites pas à le dire.
Tu devrais essayer cette procédure et comme c'est une fonction, tu dois l'ins"rer dans un module que tu crées par insertion.
Si tu as un blocage tu n'hésites pas à le dire.
Manuesunny
Bonjour! Je voulais te remercier, tout a super bien été, il y a avait un problème de sécurité des macros, en enlevant sa, tout fonctionne à merveille, alors je te souhaite une belle journée et je peux te dire que moi ma journée est faite !! Mon patron est super content et sa vient de nous simplifier la tache pour tous nos projets pour les années a venir ! Merci encore une fois !
Sun :-P
Sun :-P
ckaphy
Bonjour à tous,
J'ai utilisé cette fonction personnalisé en langage VBA.
Je souhaite sommer les valeurs d'une même colonne en fonction de la couleur.
La formule "cumul_couleur" marche très bien sauf quand j'ai des chiffres et des lettres dans la même colonne ou la cellule somme retourne "#VALEUR".
Je souhaite par exemple sommer une colonne de ce type:
8
7
Int
8
5
ABS
5
DM
Comment faire pour ignorer les lettres et obtenir la somme en fonction des couleurs de police ?
Merci pour votre aide
J'ai utilisé cette fonction personnalisé en langage VBA.
Je souhaite sommer les valeurs d'une même colonne en fonction de la couleur.
La formule "cumul_couleur" marche très bien sauf quand j'ai des chiffres et des lettres dans la même colonne ou la cellule somme retourne "#VALEUR".
Je souhaite par exemple sommer une colonne de ce type:
8
7
Int
8
5
ABS
5
DM
Comment faire pour ignorer les lettres et obtenir la somme en fonction des couleurs de police ?
Merci pour votre aide
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
bonjour
Il suffit de remplacer :
cumul_couleur = cumul_couleur + elm.Value
par un test numeric :
Il suffit de remplacer :
cumul_couleur = cumul_couleur + elm.Value
par un test numeric :
If IsNumeric(elm.Value) Then cumul_couleur = cumul_couleur + elm.Value
debbie
je sais que ça fait un moment que ce sujet a été posté mais j'ai fait ce que vous a écrit et ça marche ! je voulais vous remercier car c'est super comme outil ! :)
szacm
Bonjour,
je ne comprends pas car une fois que j'ai insérer la formuler, que excel la reconnait, que je l'applique, la somme est toujours 0...
Comment trouver l'erreur ?
Merci beaucoup messieurs
je ne comprends pas car une fois que j'ai insérer la formuler, que excel la reconnait, que je l'applique, la somme est toujours 0...
Comment trouver l'erreur ?
Merci beaucoup messieurs
MaxEsther
- Messages postés
- 6
- Date d'inscription
- vendredi 11 novembre 2016
- Statut
- Membre
- Dernière intervention
- 17 février 2017
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
Bonjour,
comment modifier le code pour rentrer directement dans la commande une couleur a rechercher, plutôt que d'aller la chercher dans une cellule donnée ?
Merci d'avance pour votre aide
Max
MaxEsther
- Messages postés
- 6
- Date d'inscription
- vendredi 11 novembre 2016
- Statut
- Membre
- Dernière intervention
- 17 février 2017
Problème avec
Public Function cumul_couleur2(plage As Range, col.Font.ColorIndex)
(Erreur de ompilation ; Attendu : séparateur de liste ou )
ou
Public Function cumul_couleur2(plage As Range, col As col.Font.ColorIndex)
(Type défini par l'utilisateur non défini)
Public Function cumul_couleur2(plage As Range, col.Font.ColorIndex)
(Erreur de ompilation ; Attendu : séparateur de liste ou )
ou
Public Function cumul_couleur2(plage As Range, col As col.Font.ColorIndex)
(Type défini par l'utilisateur non défini)
gbinforme
- Messages postés
- 14934
- Date d'inscription
- lundi 18 octobre 2004
- Statut
- Contributeur
- Dernière intervention
- 24 juin 2020
- Messages postés
- 6
- Date d'inscription
- vendredi 11 novembre 2016
- Statut
- Membre
- Dernière intervention
- 17 février 2017
Bonjour,
Lorsque l'on ne lit pas correctement, tu ne peux faire que n'importe quoi
Cela ne compte que les rouge bien sûr !
Lorsque l'on ne lit pas correctement, tu ne peux faire que n'importe quoi
Public Function cumul_couleur(plage As Range) Dim elm As Object Application.Volatile cumul_couleur = 0 For Each elm In plage If elm.Font.ColorIndex = 3 Then cumul_couleur = cumul_couleur + elm.Value End If Next elm End Function
Cela ne compte que les rouge bien sûr !
même problème même solution relit entièrement le texte.
quelle valeur doit-on afficher pour les couleurs ?
Tu n'as pas tout lu :
Pour appeler cette fonction : cumul_couleur(plage à cumuler, cellule avec la couleur à cumuler)
lorsque tu implantes la fonction dans une cellule en premier elle demande la plage en deuxième elle demande la couleur et là je mets quoi ? rouge.
d'avance merci pour ta réponse
Ingénieux !
Bravo et merci
Mais je veux associer une autre condition avec la couleur de fond de la cellule.