Fonctions excel

Bonjour,

sous excel comment faire la somme de cellules de méme couleurs sans tenir compte du texte ??
merci

2 réponses

  1. Bonjour,

    Tu dois pouvoir créer cette fonction en passant par VBA. Pour cela il suffit de créer une boucle qui parcoure chaque cellule de la zone en question et qui ajoute la valeur de chaque case si la condition "couleur de la case est respectée"

    Du genre :

    Sub test()

    Dim myselect, mycells As Range
    Dim total As Double

    Set myselect = Range("B5:B14")
    'pour un ex, on peut prendre une sélection variable

    For Each mycells In myselect
    If mycells.Interior.ColorIndex = 6 Then
    ' le 6, c'est du jaune
    total = total + mycells.Value
    End If
    Next

    MsgBox "le total est :" & total
    ' on peut ressortir la valeur n'importe ou

    End Sub


    Après ca dépend si tu veux le faire via une fonction (que tu crées mais dans ce cas il faut spécifier les arguments) ou si tu veux le faire via un bouton (avec une zone a spécifier). L'exemple que je t'ai mis marche avec une commande, comme un bouton.

    J'espère que ca fera l'affaire
    0
    1. Contributeur
      Salut le forum

      Une fonction personnalisée (Il en existe plusieurs variantes)

      Code à mettre dans un module VBA
      Function SommeSiCouleur(Plage As Range, NumeroDeCouleur%) As Long  
      Application.Volatile True  
      Dim wCell As Range  
      For Each wCell In Plage  
      If wCell.Interior.ColorIndex = NumeroDeCouleur Then  
      SommeSiCouleur = SommeSiCouleur + wCell.Value  
      End If  
      Next  
      End Function

      La formule : =SommeSiCouleur(A1:A10, 3)

      Ou encore sans connaitre la valeur de la palette des couleurs

      Function SumByColor(PlageEntree As Range, CouleurPlage As Range) As Double   
      Dim Cell As Range, TempSum As Double, ColorIndex As Integer   
      Application.Volatile  
            ColorIndex = CouleurPlage.Cells(1, 1).Interior.ColorIndex   
            TempSum = 0   
            On Error Resume Next   
            For Each Cell In PlageEntree.Cells   
                  If Cell.Formula < > "" Then   
                        If Cell.Interior.ColorIndex = ColorIndex Then TempSum = TempSum + _   
                          Cell.Value   
                  End If   
            Next Cell   
            On Error GoTo 0   
            Set Cell = Nothing   
            SumByColor = TempSum   
      End Function

      La formule : =SumByColor(A1:A10, B1)

      Mytå
      Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
      1