Additionner des cellules de couleur rouge

CChazal57 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 victor -
Bonjour,

J'ai lu le forum qui donne la solution pour additionner les cellules d'une même couleur et je pense avoir compris. Pour autant, je n'arrive pas à implémenter correctement la formule dans VB car j'ai déjà un bout de code qui colorie les cellules en rouge quand on double clique sur la cellule.
J'ai donc ceci dans VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("C:J")) Is Nothing Then Exit Sub
If ActiveCell.Interior.ColorIndex = xlColorIndexNone Then ActiveCell.Interior.ColorIndex = 3 Else ActiveCell.Interior.ColorIndex = xlColorIndexNone
Cancel = True
End Sub

Pour ajouter la formule qui permet de sommer les cellules de couleur, dois-je ajouter le code juste après le "End Sub" ou avant ?
Merci

2 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Pour ajouter la formule qui permet de sommer les cellules de couleur, dois-je ajouter le code juste après le "End Sub" ou avant ?
Non, tu fabriques une fonction que tu places dans un module général (depuis l'editeur vba > Insertion/Module)
Par exemple
Public Function SomCoul(plage As Range, coul As Byte) As Double
Dim sc As Double, cel As Range
sc = 0
For Each cel In plage
If cel.Interior.ColorIndex = coul Then sc = sc + cel.Value
Next cel
SomCoul = sc
End Function

Cette fonction s'utilise aussi bien :
dans un code vba > s = SomCoul(Range("A1:B8"),3)
que dans la feuille de calcul > =SomCoul(A1:B8;3)

Cdlmnt
0
victor
 
Bonjour Claire Chazal (de France 5 et la 7),

Le code VBA que tu montres change la couleur de fond d'une seule cellule,
la cellule active (si elle est dans la plage des colonnes C à J) : en rouge /
aucune couleur (et inversement).

Comme ça ne concerne qu'une seule cellule, faire la somme est inutile ;
ce serait mieux que tu indiques la plage exacte où tu veux sommer tes
cellules sur fond rouge ; et que faire de cette somme ? tu veux juste
l'afficher via MsgBox, ou dans quelle cellule faut-il l'écrire ?

Es-tu sûre de vouloir obtenir ce que tu veux par un double-clic sur ta
feuille ? Même sans avoir vu ton classeur, je ne suis pas sûr que ce
soit approprié, mais à toi de voir.

La réponse de ccm81 de 15:03 t'aidera sûrement.

Cordialement
 
0