Macro

bonjour à tous

je voudrais faire un total des cellules rouges avec la macro qui est dans l'exemple que j'ai trouvé

c'est celle qui me convient le mieux mais le problème c'est qu'elle ne calcule que sur la ligne 1 et mon souhait est de faire la somme des cellules de couleur (base en L1) sur la plage C46:BM90 (il y aura des cellules vides)

la somme doit s'afficher en X4

merci d'avance à tout ceux qui voudront m'aider

AUBA

5exemple.xlsm (17.54 Ko)

Bonjour

Avec une fonction personnalisée

Bonjour,

Modification de ta amcro initiale : Ctrl+a pour lancer la procédure

Cdlt

Option Explicit
Public Sub sommecouleur()
'définition des variables
Dim derLig As Integer, derCol As Integer
Dim Plage As Range
Dim cell As Variant
Dim cellulecouleur, testcouleur As Long
Dim Compteur, cellule As Integer
    'Dernière ligne et dernière colonne utilisées dans la feuille
    derLig = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    derCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
    'Définir la plage de recherche
    Set Plage = Range(Cells(1, 1), Cells(derLig, derCol))
    'la couleur de référence pour la somme est celle de L1
    cellulecouleur = Range("L1").Interior.Color
    'Mise à zéro du compteur pour la somme
    Compteur = 0

    For Each cell In Plage
        'recherche de la couleur de la cellule sélectionnée
        testcouleur = cell.Interior.Color
        'Condition : comparaison avec la couleur de référence
            'si couleur active = couleur de référence
            If testcouleur = cellulecouleur Then
            'on ajoute la valeur de la cellule au compteur puis on passe à la cellule
            'suivante
            Compteur = Compteur + cell.Value
        'si couleur active <> couleur de référence
        Else
            'on n'ajoute rien au compteur puis on passe à la cellule
            'suivante
            Compteur = Compteur + 0
        End If
    Next cell

    'la valeur du compteur est inscrite dans la cellule "X4"
    Range("X4").Value = Compteur

    End Sub
5exemple-v1.xlsm (18.34 Ko)

Bonjour,

Sinon en un peu plus simple :

Sub TestComptageCouleur()

Dim Couleur As Long, Total As Long, Cell As Range

Couleur = Range("L1").Interior.ColorIndex

Total = 0

For Each Cell In Range("C46:BM90")
    If Cell.Interior.ColorIndex = Couleur Then
        Total = Total + Cell.Value
    End If
Next

Range("X4").Value = Total

End Sub

Cordialement,

bonjour

un grand merci à tous pour toutes vos réponses si rapides

vous m'avez bien dépanner

AUBA

Rechercher des sujets similaires à "macro"