XL 2019 Additionner des cellules Excel en fonction de leurs couleurs

frederio

XLDnaute Impliqué
Bonjour A tous,
Tu vous connais comment faire code vba

la plage L4 à N86 des calculs en fonction de la couleur

Comment faire somme total sur bouton vba
 

Pièces jointes

  • Check Box 1.xlsm
    86.9 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Frederico,
Un essai en PJ avec :
VB:
Sub SommeSiVert()
    Dim c, Somme
    For Each c In [L4:N86]
        If c.Interior.Color = RGB(0, 176, 80) Then Somme = Somme + c.Value
    Next c
    MsgBox " La somme des cellules en vert est de : " & Somme
End Sub
Evidemment la couleur ( vert ) ne doit pas changer.
 

Pièces jointes

  • Check Box 1.xlsm
    79.4 KB · Affichages: 4

frederio

XLDnaute Impliqué
Par exemple :
comment faire couleur vert somme total merci
2022-09-25_16-38-43.jpg
 

Pièces jointes

  • Check Box 1.xlsm
    93.9 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
La PJ #2 marche t-elle comme demandé ? Vous pourriez au moins dire si c'est ok ou non.
Juste pour éviter de croire qu'on bosse pour rien.
Pour ce nouveau point, un bouton est inutile, il suffit de cette fonction pour être automatique :
VB:
Function SOMMESICOULEURVERT(cellules As Range)
    Dim total As Double, c As Range
    For Each c In cellules
        If c.Interior.Color = RGB(0, 176, 80) Then total = total + c
    Next c
    SOMMESICOULEURVERT = total
End Function
 

Pièces jointes

  • Check Box 1 (1).xlsm
    84.5 KB · Affichages: 3

laurent950

XLDnaute Barbatruc
Bonsoir ,

En Poste #5 exercice solution : TP VBA | Additionner des cellules Excel en fonction de leurs couleurs

VB:
Sub sommeCouleurs()
Application.Volatile
Dim sommeCouleurs As Double
sommeCouleurs = 0
Dim Couleur As Range
Dim chaqueCellule As Range
Dim Plg(0 To 1) As Range
    Set Plg(0) = Range(Cells(1, 3), Cells(5, 3)) ' ......... Plage de Couleur de C1:C5
    Set Plg(1) = Range(Cells(1, 1), Cells(10, 1)) ' ........ Faire la somme en fonctions des Couleurs de A1:A10
    Plg(0).ClearContents ' ................................. Efface le résultat Précédemment stocké C1:C5
    For Each Couleur In Plg(0) ' ........................... Plg(0) Plage de Couleur de C1:C5
        For Each chaqueCellule In Plg(1) ' ..................Plg(1) Plage des Valeurs en fonction des Couleurs de C1:C5
            If (chaqueCellule.Interior.ColorIndex = Couleur.Interior.ColorIndex) Then ' Condition
                sommeCouleurs = sommeCouleurs + chaqueCellule.Value ' Somme en Fonction des couleurs
            End If
        Next chaqueCellule
        Couleur.Value2 = sommeCouleurs: sommeCouleurs = 0 ' Stock le Résultat, et Remise a Zéro de la variable sommeCouleurs
    Next Couleur
sommeCouleurs = Empty: Set Couleur = Nothing: Set chaqueCellule = Nothing: Erase Plg
End Sub
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 499
Messages
2 110 249
Membres
110 711
dernier inscrit
chmessi