Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

format conditionnelle sur couleur de cellule

4 réponses
Avatar
Sky
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

4 réponses

Avatar
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







Avatar
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
Avatar
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











Avatar
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