integrer couleur dans formule

  • Initiateur de la discussion Initiateur de la discussion garrec
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

garrec

XLDnaute Occasionnel
Bonjour j'ai une formule qui somme sous conditions. Peut on integrer comme condition:

Si la cellule est blanche tu sommes et autre couleur tu la prend pas pour sommer?


Merci
 
Re : integrer couleur dans formule

Bonjour,

Tu peux coller cette fonction personnalisée dans un module standard
Et dans une cellule, tu indiques la plage à additionner : =SumNoWhite(B1:B7)

Le problème avec l'intervention d'un format pour sommer, si tu modifies la
couleur d'une cellule, la fonction ne se mettre pas à jour automatiquement, tu
devras appuyer sur la touche F9 pour provoquer son calcul.



Function SumNoWhite(Rg As Range) As Double
Dim C As Range
For Each C In Rg
If C.Interior.Color = vbWhite Then
If IsNumeric(C) Then
SumNoWhite = SumNoWhite + C.Value
End If
End If
Next
End Function
 
Re : integrer couleur dans formule

Bonjour à tous,

MichD : Et avec l'ajout d'un Application.Volatile ?

VB:
Option Explicit


Function SumNoWhite(Rg As Range) As Double
Application.Volatile
    Dim C As Range
    For Each C In Rg
        If C.Interior.Color = vbWhite Then
            If IsNumeric(C) Then
                SumNoWhite = SumNoWhite + C.Value
            End If
        End If
    Next
End Function
 
Re : integrer couleur dans formule

Merci MichD


Deja je suis bete. C'est si c'est vert que l'on prend pour sommer 🙄 Mais je vois ton raisonnement tu creer une fonction VBA

Mais en fait c'est pour inserer une 4eme condition dans la parenthese vide

Code:
SOMMEPROD( ($A$2909:$A$3500>=SERIE.JOUR.OUVRE(AUJOURDHUI();-4)) * ($B$2909:$B$3500="Financière Capital +")*(     ) ($E$2909:$E$3500='Rappro DEXIA'!B32) * ($AK$2909:$AK$3500) )


Je peux mettre dans la parenthese

P$2909:$P$3500= "vert". Bon il faur creer la fonction vert alors ???
 
Re : integrer couleur dans formule

Bonjour JCGL,

Si tu veux, mais il n'en demeure pas moins que si une ou des cellules de la plage à sommer
change de couleur, la mise à jour ne sera pas automatique, mais avec Application.Volatile.
Cela étant dit, cela aide j'en conviens, mais la prudence reste de mise!
 
Re : integrer couleur dans formule

Ok, je n'avais pas vu ton message,

Voici un fichier exemple :
 

Pièces jointes

Re : integrer couleur dans formule

Bonjour!

Merci bcp. Mais ta function que tu as crée, si le tableau fait 3000 lignes et qu'il demarre en AR par exemple, il n'y a pas besoin de la retoucher??

J epense pas mais bon une précisio nn'est jamais inutile.

Merci encore

bne journée a toi
 
Re : integrer couleur dans formule

Oui pour le message ci avant je suis ok avec toi.


Sinon 😛


En fait tu as loupé un minuscule détail ou je me suis mal exprimé. 🙄


Mais la tu fais la somme des case jaune (+ d'autres conditions). Regarde j'ai mi ton exemple dans une piece jointe. En fait ce n'est pas ce qui est a sommer en jaune mais une colonne parallele 🙂


Tu vois comment faire?

Bon week😀
 

Pièces jointes

Re : integrer couleur dans formule

Bonjour à tous,

Es-tu certain que ce soit moi qui ait oublié un détail ?

Dans quelle colonne sont tes cellules colorées?
Quelle colonne as-tu posée dans tes formule ?

A + à tous
 
Re : integrer couleur dans formule

Bonjour,

Question d'apporter quelques précisions sur la fonction,

A ) Si tu as plusieurs couleurs dans la plage que tu veux additionner, l'exemple
additionne toutes les cellules qui ne sont pas "blanches", en l'occurrence les "jaune"
puisque c'est la seule couleur. (autre que blanche) Dans le code, tu as cette ligne :
If C.Interior.Color <> vbWhite Then

B ) Si tu veux une couleur particulière parmi un groupe de couleurs, je te suggère
d'utiliser cette fonction :

La fonction SumNoWhite() a 2 arguments. Le premier Rg est la plage de cellules
dont tu veux vérifier la couleur, le deuxième paramètre "ColorCell" est une cellule
dont le fond de celle-ci affiche déjà la couleur désirée.

Exemple : Lorsque tu saisis la fonction dans une cellule : SumNoWhite(A1:A10;G25)
A1:A10 -> Plage dont tu veux vérifier la couleur
G25 -> Cellule dont la propriété "interior" affiche la couleur qui servira de comparaison

VB:
         Function SumNoWhite(Rg As Range, ColorCell As Range) As Variant
         Application.Volatile
         Dim C As Range, T(), A As Integer
         ReDim T(1 To Rg.Cells.Count)
         For Each C In Rg
             A = A + 1
             If C.Interior.Color = ColorCell.Interior.Color Then
                  T(A) = True
             Else
                 T(A) = False
            End If
       Next
       SumNoWhite = Application.Transpose(T)
       End Function


C ) Si tu utilises cette fonction comme paramètre à une fonction SommeProd(), cette dernière ne requiert pas
une validation matricielle. Sommeprod() est déjà une fonction matricielle.
 
Dernière édition:
Re : integrer couleur dans formule

Bonjour à tous,

MichD : J'apprécie beaucoup tes codes mais je trouve qu'il sont "imbuvables" tels que tu les présentes... Et en espérant que "ma remarque" sera bien prise...

Ton dernier code avec les balises proposées nativement et une non référencée :

Ton tien sans balise :

Function SumNoWhite(Rg As Range, ColorCell As Range) As Variant
Application.Volatile
Dim C As Range, T(), A As Integer
ReDim T(1 To Rg.Cells.Count)
For Each C In Rg
A = A + 1
If C.Interior.Color = ColorCell.Interior.Color Then
T(A) = True
Else
T(A) = False
End If
Next
SumNoWhite = Application.Transpose(T)
End Function

Avec balise Citation (Quote)
Function SumNoWhite(Rg As Range, ColorCell As Range) As Variant
Application.Volatile
Dim C As Range, T(), A As Integer
ReDim T(1 To Rg.Cells.Count)
For Each C In Rg
A = A + 1
If C.Interior.Color = ColorCell.Interior.Color Then
T(A) = True
Else
T(A) = False
End If
Next
SumNoWhite = Application.Transpose(T)
End Function

Avec balise Code:
Code:
Function SumNoWhite(Rg As Range, ColorCell As Range) As Variant
Application.Volatile[/COLOR]
Dim C As Range, T(), A As Integer
ReDim T(1 To Rg.Cells.Count)
For Each C In Rg
A = A + 1[/COLOR]
If C.Interior.Color = ColorCell.Interior.Color Then
T(A) = True
Else
T(A) = False
End If
Next
SumNoWhite = Application.Transpose(T)
End Function

Avec balise HTML :
HTML:
Function SumNoWhite(Rg As Range, ColorCell As Range) As Variant
Application.Volatile
Dim C As Range, T(), A As Integer
ReDim T(1 To Rg.Cells.Count)
For Each C In Rg
A = A + 1
If C.Interior.Color = ColorCell.Interior.Color Then
T(A) = True
Else
T(A) = False
End If
Next
SumNoWhite = Application.Transpose(T)
End Function

Avec balise PHP
PHP:
Function SumNoWhite(Rg As Range, ColorCell As Range) As Variant
Application.Volatile
Dim C As Range, T(), A As Integer
ReDim T(1 To Rg.Cells.Count)
For Each C In Rg
A = A + 1
If C.Interior.Color = ColorCell.Interior.Color Then
T(A) = True
Else
T(A) = False
End If
Next
SumNoWhite = Application.Transpose(T)
End Function

Avec highlight=VBA et highlight plus les crochets qui vont bien :

VB:
Function SumNoWhite(Rg As Range, ColorCell As Range) As Variant
Application.Volatile
Dim C As Range, T(), A As Integer
ReDim T(1 To Rg.Cells.Count)
For Each C In Rg
A = A + 1
If C.Interior.Color = ColorCell.Interior.Color Then
T(A) = True
Else
T(A) = False
End If
Next
SumNoWhite = Application.Transpose(T)
End Function

A++
A + à tous
 
Re : integrer couleur dans formule

Es-tu sérieux? Ça vous prend de la couleur en plus?

Dis, qui est responsable du café et des croissants?

;-))

N.B. J'avais remarqué, mais je ne savais pas les codes!
Voyons si je m'en souviendrai! ;-)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
301
Réponses
1
Affichages
313
Retour