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

somme si couleur

3 réponses
Avatar
dimitri
Bonjour,

Je souhaite creer une fonction qui additionne les seules cellules où la
police est en rouge. Je dois donc créer une fonction "couleur" à l'aide
de visual basic. Mais je n'y arrive pas. Pourriez vous m'aider?

Merci d'avance

Dimitri

3 réponses

Avatar
michdenis
Lorsque tu utilises la couleur comme critère d'addition,
il y a une problématique :

A ) si toi ou un usager décide de modifier la couleur d'une
cellule, la fonction "Additionner" ne sera pas mise à jour, tu
devras manuellement utiliser la touche F9 pour faire la mise à jour.

B ) Qu'est-ce qui se passe si quelqu'un modifie la palette de couleurs tu classeur ?

Et si tu y tiens :

La fonction doit être obligatoirement mise dans un module standard.
Et dans une cellule, tu écris : Function ADD_Couleur(A1:G25;3)
Le chiffre 3 représente l'index de la palette de couleur du fond de la cellule.
'-------------------------------
Function ADD_Couleur(Rg As Range, LaCouleur As Integer) As Double

Dim C As Range
For Each C In Rg.SpecialCells(xlCellTypeConstants, xlNumbers)
If C.Interior.ColorIndex = LaCouleur Then
ADD_Couleur = ADD_Couleur + C.Value
End If
Next

End Function
'-------------------------------



"dimitri" a écrit dans le message de groupe de discussion :
4985b161$0$9388$
Bonjour,

Je souhaite creer une fonction qui additionne les seules cellules où la
police est en rouge. Je dois donc créer une fonction "couleur" à l'aide
de visual basic. Mais je n'y arrive pas. Pourriez vous m'aider?

Merci d'avance

Dimitri
Avatar
dimitri
Ce n'est pas si un fond est coloré mais si la police est d'une certaine
couleur, j'imagine donc que Function ADD_Couleur(A1:G25;3) ne fonctionne
pas et qu'il faut changer le 3
michdenis a écrit :
Lorsque tu utilises la couleur comme critère d'addition,
il y a une problématique :

A ) si toi ou un usager décide de modifier la couleur d'une
cellule, la fonction "Additionner" ne sera pas mise à jour, tu
devras manuellement utiliser la touche F9 pour faire la mise à jour.

B ) Qu'est-ce qui se passe si quelqu'un modifie la palette de couleurs tu classeur ?

Et si tu y tiens :

La fonction doit être obligatoirement mise dans un module standard.
Et dans une cellule, tu écris : Function ADD_Couleur(A1:G25;3)
Le chiffre 3 représente l'index de la palette de couleur du fond de la cellule.
'-------------------------------
Function ADD_Couleur(Rg As Range, LaCouleur As Integer) As Double

Dim C As Range
For Each C In Rg.SpecialCells(xlCellTypeConstants, xlNumbers)
If C.Interior.ColorIndex = LaCouleur Then
ADD_Couleur = ADD_Couleur + C.Value
End If
Next

End Function
'-------------------------------



"dimitri" a écrit dans le message de groupe de discussion :
4985b161$0$9388$
Bonjour,

Je souhaite creer une fonction qui additionne les seules cellules où la
police est en rouge. Je dois donc créer une fonction "couleur" à l'aide
de visual basic. Mais je n'y arrive pas. Pourriez vous m'aider?

Merci d'avance

Dimitri



Avatar
michdenis
Si c'est la couleur de la police, tu dois modifier
ceci à la fonction :
If C.Interior.ColorIndex = LaCouleur Then
Pour :
If C.Font.ColorIndex = LaCouleur Then



"dimitri" a écrit dans le message de groupe de discussion :
4985bc32$0$18365$

Ce n'est pas si un fond est coloré mais si la police est d'une certaine
couleur, j'imagine donc que Function ADD_Couleur(A1:G25;3) ne fonctionne
pas et qu'il faut changer le 3
michdenis a écrit :
Lorsque tu utilises la couleur comme critère d'addition,
il y a une problématique :

A ) si toi ou un usager décide de modifier la couleur d'une
cellule, la fonction "Additionner" ne sera pas mise à jour, tu
devras manuellement utiliser la touche F9 pour faire la mise à jour.

B ) Qu'est-ce qui se passe si quelqu'un modifie la palette de couleurs tu classeur ?

Et si tu y tiens :

La fonction doit être obligatoirement mise dans un module standard.
Et dans une cellule, tu écris : Function ADD_Couleur(A1:G25;3)
Le chiffre 3 représente l'index de la palette de couleur du fond de la cellule.
'-------------------------------
Function ADD_Couleur(Rg As Range, LaCouleur As Integer) As Double

Dim C As Range
For Each C In Rg.SpecialCells(xlCellTypeConstants, xlNumbers)
If C.Interior.ColorIndex = LaCouleur Then
ADD_Couleur = ADD_Couleur + C.Value
End If
Next

End Function
'-------------------------------



"dimitri" a écrit dans le message de groupe de discussion :
4985b161$0$9388$
Bonjour,

Je souhaite creer une fonction qui additionne les seules cellules où la
police est en rouge. Je dois donc créer une fonction "couleur" à l'aide
de visual basic. Mais je n'y arrive pas. Pourriez vous m'aider?

Merci d'avance

Dimitri