J'aimerais faire une somme pour les cellules qui sont d'une certaines
couleur, mais je ne sais pas comment effectuer ma formule dans mon format
conditionnel
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ChrisV
Bonjour Sky,
Dans un module du classeur:
Function Pfff(Zone As Range, critere, couleur As String) Application.Volatile Select Case couleur Case "rouge": couleur = 3 Case "vert": couleur = 50 Case "jaune": couleur = 6 Case "bleu": couleur = 5 Case "gris": couleur = 15 Case "orange": couleur = 40 End Select For Each c In Zone If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _ cvSomme + 1 Next Pfff = cvSomme End Function
Dans une cellule de l'onglet concerné: (avec par ex. la plage de données sur A1:A10)
=Pfff(A1:A10;1;"rouge")
nb: mise à jour nécessaire de la fonction, en cas de modif couleur dans la plage de données, par F9.
nb2: si tu désires additionner le contenu des cellules plutôt que le nombre de cellules... remplace: For Each c In Zone If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _ cvSomme + 1 Next par: For Each c In Zone If cell.Interior.ColorIndex = couleur Then cvSomme = _ cvSomme + cell.Value Next
ChrisV
"Sky" a écrit dans le message de news: 43574cd6$0$7855$
Bonjour à tous,
J'aimerais faire une somme pour les cellules qui sont d'une certaines couleur, mais je ne sais pas comment effectuer ma formule dans mon format conditionnel
Merci de votre aide
Bonjour Sky,
Dans un module du classeur:
Function Pfff(Zone As Range, critere, couleur As String)
Application.Volatile
Select Case couleur
Case "rouge": couleur = 3
Case "vert": couleur = 50
Case "jaune": couleur = 6
Case "bleu": couleur = 5
Case "gris": couleur = 15
Case "orange": couleur = 40
End Select
For Each c In Zone
If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _
cvSomme + 1
Next
Pfff = cvSomme
End Function
Dans une cellule de l'onglet concerné:
(avec par ex. la plage de données sur A1:A10)
=Pfff(A1:A10;1;"rouge")
nb: mise à jour nécessaire de la fonction, en cas de modif couleur dans la
plage de données, par F9.
nb2: si tu désires additionner le contenu des cellules plutôt que le nombre
de cellules...
remplace:
For Each c In Zone
If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _
cvSomme + 1
Next
par:
For Each c In Zone
If cell.Interior.ColorIndex = couleur Then cvSomme = _
cvSomme + cell.Value
Next
ChrisV
"Sky" <schricke.franck@wanadoo.fr> a écrit dans le message de news:
43574cd6$0$7855$8fcfb975@news.wanadoo.fr...
Bonjour à tous,
J'aimerais faire une somme pour les cellules qui sont d'une certaines
couleur, mais je ne sais pas comment effectuer ma formule dans mon format
conditionnel
Function Pfff(Zone As Range, critere, couleur As String) Application.Volatile Select Case couleur Case "rouge": couleur = 3 Case "vert": couleur = 50 Case "jaune": couleur = 6 Case "bleu": couleur = 5 Case "gris": couleur = 15 Case "orange": couleur = 40 End Select For Each c In Zone If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _ cvSomme + 1 Next Pfff = cvSomme End Function
Dans une cellule de l'onglet concerné: (avec par ex. la plage de données sur A1:A10)
=Pfff(A1:A10;1;"rouge")
nb: mise à jour nécessaire de la fonction, en cas de modif couleur dans la plage de données, par F9.
nb2: si tu désires additionner le contenu des cellules plutôt que le nombre de cellules... remplace: For Each c In Zone If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _ cvSomme + 1 Next par: For Each c In Zone If cell.Interior.ColorIndex = couleur Then cvSomme = _ cvSomme + cell.Value Next
ChrisV
"Sky" a écrit dans le message de news: 43574cd6$0$7855$
Bonjour à tous,
J'aimerais faire une somme pour les cellules qui sont d'une certaines couleur, mais je ne sais pas comment effectuer ma formule dans mon format conditionnel
Merci de votre aide
jb
Créer la fonction ci dessous en VBA dans un module. Elle s'utilise ensuite commae une fonction classique. On peut l'enregistrer en macro complémentaire si on veut qu'elle soit utlilisable dans les autres classeurs. Attention! si on change la couleur d'une cellule, il faut actualiser les calculs.
Dans le tableur, on aura: =somme_couleur(A1:D10;C1) C1 est la cellule qui contient la couleur de référence.
Function somme_couleur(champ As Range, couleur As Range) Application.Volatile Dim i, t t = 0 For Each i In champ If i.Interior.ColorIndex = couleur.Interior.ColorIndex Then t = t + i.Value End If Next i somme_couleur = t End Function
Cordialement JB
Créer la fonction ci dessous en VBA dans un module. Elle s'utilise
ensuite commae une fonction classique. On peut l'enregistrer en macro
complémentaire si on veut qu'elle soit utlilisable dans les autres
classeurs.
Attention! si on change la couleur d'une cellule, il faut actualiser
les calculs.
Dans le tableur, on aura: =somme_couleur(A1:D10;C1) C1 est la cellule
qui contient la couleur de référence.
Function somme_couleur(champ As Range, couleur As Range)
Application.Volatile
Dim i, t
t = 0
For Each i In champ
If i.Interior.ColorIndex = couleur.Interior.ColorIndex Then
t = t + i.Value
End If
Next i
somme_couleur = t
End Function
Créer la fonction ci dessous en VBA dans un module. Elle s'utilise ensuite commae une fonction classique. On peut l'enregistrer en macro complémentaire si on veut qu'elle soit utlilisable dans les autres classeurs. Attention! si on change la couleur d'une cellule, il faut actualiser les calculs.
Dans le tableur, on aura: =somme_couleur(A1:D10;C1) C1 est la cellule qui contient la couleur de référence.
Function somme_couleur(champ As Range, couleur As Range) Application.Volatile Dim i, t t = 0 For Each i In champ If i.Interior.ColorIndex = couleur.Interior.ColorIndex Then t = t + i.Value End If Next i somme_couleur = t End Function
Cordialement JB
ChrisV
Du copier-coller intempestif comme dirait GeeDee... Tu peux supprimer l'argument "critere" dans la fonction Pfff, qui devient donc:
Function Pfff(Zone As Range, couleur As String) Application.Volatile Select Case couleur Case "rouge": couleur = 3 Case "vert": couleur = 50 Case "jaune": couleur = 6 Case "bleu": couleur = 5 Case "gris": couleur = 15 Case "orange": couleur = 40 End Select For Each c In Zone If c.Font.ColorIndex = couleur Then cvSomme = _ cvSomme + 1 Next Pfff = cvSomme End Function
Dans une cellule de l'onglet concerné: (avec par ex. la plage de données sur A1:A10)
=Pfff(A1:A10;"rouge")
ChrisV
"ChrisV" a écrit dans le message de news: %
Bonjour Sky,
Dans un module du classeur:
Function Pfff(Zone As Range, critere, couleur As String) Application.Volatile Select Case couleur Case "rouge": couleur = 3 Case "vert": couleur = 50 Case "jaune": couleur = 6 Case "bleu": couleur = 5 Case "gris": couleur = 15 Case "orange": couleur = 40 End Select For Each c In Zone If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _ cvSomme + 1 Next Pfff = cvSomme End Function
Dans une cellule de l'onglet concerné: (avec par ex. la plage de données sur A1:A10)
=Pfff(A1:A10;1;"rouge")
nb: mise à jour nécessaire de la fonction, en cas de modif couleur dans la plage de données, par F9.
nb2: si tu désires additionner le contenu des cellules plutôt que le nombre de cellules... remplace: For Each c In Zone If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _ cvSomme + 1 Next par: For Each c In Zone If cell.Interior.ColorIndex = couleur Then cvSomme = _ cvSomme + cell.Value Next
ChrisV
"Sky" a écrit dans le message de news: 43574cd6$0$7855$
Bonjour à tous,
J'aimerais faire une somme pour les cellules qui sont d'une certaines couleur, mais je ne sais pas comment effectuer ma formule dans mon format conditionnel
Merci de votre aide
Du copier-coller intempestif comme dirait GeeDee...
Tu peux supprimer l'argument "critere" dans la fonction Pfff, qui devient
donc:
Function Pfff(Zone As Range, couleur As String)
Application.Volatile
Select Case couleur
Case "rouge": couleur = 3
Case "vert": couleur = 50
Case "jaune": couleur = 6
Case "bleu": couleur = 5
Case "gris": couleur = 15
Case "orange": couleur = 40
End Select
For Each c In Zone
If c.Font.ColorIndex = couleur Then cvSomme = _
cvSomme + 1
Next
Pfff = cvSomme
End Function
Dans une cellule de l'onglet concerné:
(avec par ex. la plage de données sur A1:A10)
=Pfff(A1:A10;"rouge")
ChrisV
"ChrisV" <chrisv@microsoftgroups.org> a écrit dans le message de news:
%23VkMOyU1FHA.2428@tk2msftngp13.phx.gbl...
Bonjour Sky,
Dans un module du classeur:
Function Pfff(Zone As Range, critere, couleur As String)
Application.Volatile
Select Case couleur
Case "rouge": couleur = 3
Case "vert": couleur = 50
Case "jaune": couleur = 6
Case "bleu": couleur = 5
Case "gris": couleur = 15
Case "orange": couleur = 40
End Select
For Each c In Zone
If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _
cvSomme + 1
Next
Pfff = cvSomme
End Function
Dans une cellule de l'onglet concerné:
(avec par ex. la plage de données sur A1:A10)
=Pfff(A1:A10;1;"rouge")
nb: mise à jour nécessaire de la fonction, en cas de modif couleur dans la
plage de données, par F9.
nb2: si tu désires additionner le contenu des cellules plutôt que le
nombre de cellules...
remplace:
For Each c In Zone
If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _
cvSomme + 1
Next
par:
For Each c In Zone
If cell.Interior.ColorIndex = couleur Then cvSomme = _
cvSomme + cell.Value
Next
ChrisV
"Sky" <schricke.franck@wanadoo.fr> a écrit dans le message de news:
43574cd6$0$7855$8fcfb975@news.wanadoo.fr...
Bonjour à tous,
J'aimerais faire une somme pour les cellules qui sont d'une certaines
couleur, mais je ne sais pas comment effectuer ma formule dans mon format
conditionnel
Du copier-coller intempestif comme dirait GeeDee... Tu peux supprimer l'argument "critere" dans la fonction Pfff, qui devient donc:
Function Pfff(Zone As Range, couleur As String) Application.Volatile Select Case couleur Case "rouge": couleur = 3 Case "vert": couleur = 50 Case "jaune": couleur = 6 Case "bleu": couleur = 5 Case "gris": couleur = 15 Case "orange": couleur = 40 End Select For Each c In Zone If c.Font.ColorIndex = couleur Then cvSomme = _ cvSomme + 1 Next Pfff = cvSomme End Function
Dans une cellule de l'onglet concerné: (avec par ex. la plage de données sur A1:A10)
=Pfff(A1:A10;"rouge")
ChrisV
"ChrisV" a écrit dans le message de news: %
Bonjour Sky,
Dans un module du classeur:
Function Pfff(Zone As Range, critere, couleur As String) Application.Volatile Select Case couleur Case "rouge": couleur = 3 Case "vert": couleur = 50 Case "jaune": couleur = 6 Case "bleu": couleur = 5 Case "gris": couleur = 15 Case "orange": couleur = 40 End Select For Each c In Zone If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _ cvSomme + 1 Next Pfff = cvSomme End Function
Dans une cellule de l'onglet concerné: (avec par ex. la plage de données sur A1:A10)
=Pfff(A1:A10;1;"rouge")
nb: mise à jour nécessaire de la fonction, en cas de modif couleur dans la plage de données, par F9.
nb2: si tu désires additionner le contenu des cellules plutôt que le nombre de cellules... remplace: For Each c In Zone If c.Font.ColorIndex = couleur And c = critere Then cvSomme = _ cvSomme + 1 Next par: For Each c In Zone If cell.Interior.ColorIndex = couleur Then cvSomme = _ cvSomme + cell.Value Next
ChrisV
"Sky" a écrit dans le message de news: 43574cd6$0$7855$
Bonjour à tous,
J'aimerais faire une somme pour les cellules qui sont d'une certaines couleur, mais je ne sais pas comment effectuer ma formule dans mon format conditionnel
Merci de votre aide
Sky
Merci jb pour cette fonction,
toutefois, la somme qui devrait découler dans ma cellule cible est fonction de format conditionnel. En fait si les conditions sont remplies, la cellule à l'origine jaune passe au vert et je voudrais qu'il me calcul le total du contenu des cellules vertes.
autre point, vous me faites part de l'enregistrement dans les macros complémentaires, je ne sais plus à méthodologie à employer pour l'enregistrer à ce niveau
Merci d'avance
"jb" a écrit dans le message de news:
Créer la fonction ci dessous en VBA dans un module. Elle s'utilise ensuite commae une fonction classique. On peut l'enregistrer en macro complémentaire si on veut qu'elle soit utlilisable dans les autres classeurs. Attention! si on change la couleur d'une cellule, il faut actualiser les calculs.
Dans le tableur, on aura: =somme_couleur(A1:D10;C1) C1 est la cellule qui contient la couleur de référence.
Function somme_couleur(champ As Range, couleur As Range) Application.Volatile Dim i, t t = 0 For Each i In champ If i.Interior.ColorIndex = couleur.Interior.ColorIndex Then t = t + i.Value End If Next i somme_couleur = t End Function
Cordialement JB
Merci jb pour cette fonction,
toutefois, la somme qui devrait découler dans ma cellule cible est fonction
de format conditionnel. En fait si les conditions sont remplies, la cellule
à l'origine jaune passe au vert et je voudrais qu'il me calcul le total du
contenu des cellules vertes.
autre point, vous me faites part de l'enregistrement dans les macros
complémentaires, je ne sais plus à méthodologie à employer pour
l'enregistrer à ce niveau
Merci d'avance
"jb" <boisgontier@hotmail.com> a écrit dans le message de news:
1129795810.729445.154060@g47g2000cwa.googlegroups.com...
Créer la fonction ci dessous en VBA dans un module. Elle s'utilise
ensuite commae une fonction classique. On peut l'enregistrer en macro
complémentaire si on veut qu'elle soit utlilisable dans les autres
classeurs.
Attention! si on change la couleur d'une cellule, il faut actualiser
les calculs.
Dans le tableur, on aura: =somme_couleur(A1:D10;C1) C1 est la cellule
qui contient la couleur de référence.
Function somme_couleur(champ As Range, couleur As Range)
Application.Volatile
Dim i, t
t = 0
For Each i In champ
If i.Interior.ColorIndex = couleur.Interior.ColorIndex Then
t = t + i.Value
End If
Next i
somme_couleur = t
End Function
toutefois, la somme qui devrait découler dans ma cellule cible est fonction de format conditionnel. En fait si les conditions sont remplies, la cellule à l'origine jaune passe au vert et je voudrais qu'il me calcul le total du contenu des cellules vertes.
autre point, vous me faites part de l'enregistrement dans les macros complémentaires, je ne sais plus à méthodologie à employer pour l'enregistrer à ce niveau
Merci d'avance
"jb" a écrit dans le message de news:
Créer la fonction ci dessous en VBA dans un module. Elle s'utilise ensuite commae une fonction classique. On peut l'enregistrer en macro complémentaire si on veut qu'elle soit utlilisable dans les autres classeurs. Attention! si on change la couleur d'une cellule, il faut actualiser les calculs.
Dans le tableur, on aura: =somme_couleur(A1:D10;C1) C1 est la cellule qui contient la couleur de référence.
Function somme_couleur(champ As Range, couleur As Range) Application.Volatile Dim i, t t = 0 For Each i In champ If i.Interior.ColorIndex = couleur.Interior.ColorIndex Then t = t + i.Value End If Next i somme_couleur = t End Function