integrer couleur dans formule

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
 

MichD

XLDnaute Impliqué
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
 

JCGL

XLDnaute Barbatruc
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
 

garrec

XLDnaute Occasionnel
Re : integrer couleur dans formule

Merci MichD


Deja je suis bete. C'est si c'est vert que l'on prend pour sommer :rolleyes: 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 ???
 

MichD

XLDnaute Impliqué
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!
 

MichD

XLDnaute Impliqué
Re : integrer couleur dans formule

Ok, je n'avais pas vu ton message,

Voici un fichier exemple :
 

Pièces jointes

  • SommeProd et fonction personnelle.xlsm
    16.2 KB · Affichages: 106
  • SommeProd et fonction personnelle.xlsm
    16.2 KB · Affichages: 112
  • SommeProd et fonction personnelle.xlsm
    16.2 KB · Affichages: 108

garrec

XLDnaute Occasionnel
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
 

JCGL

XLDnaute Barbatruc
Re : integrer couleur dans formule

Bonjour à tous,

Si MichD le permet...

C'est toi qui détermine la plage source...
Avec ton énoncé du # 7 :
Code:
=SumNoWhite(AR1:AR3000)

Validation Matricielle.

A + à tous
 

garrec

XLDnaute Occasionnel
Re : integrer couleur dans formule

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


Sinon :p


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


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:D
 

Pièces jointes

  • SommeProd et fonction personnelle.xlsm
    16.6 KB · Affichages: 72
  • SommeProd et fonction personnelle.xlsm
    16.6 KB · Affichages: 81
  • SommeProd et fonction personnelle.xlsm
    16.6 KB · Affichages: 76

JCGL

XLDnaute Barbatruc
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
 

MichD

XLDnaute Impliqué
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:

JCGL

XLDnaute Barbatruc
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
 

MichD

XLDnaute Impliqué
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! ;-)
 

Discussions similaires

Réponses
2
Affichages
95
Réponses
2
Affichages
180

Statistiques des forums

Discussions
312 636
Messages
2 090 379
Membres
104 514
dernier inscrit
eseo