Fonctions excel
papoujp
-
laxatif2 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
laxatif2 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
sous excel comment faire la somme de cellules de méme couleurs sans tenir compte du texte ??
merci
sous excel comment faire la somme de cellules de méme couleurs sans tenir compte du texte ??
merci
2 réponses
-
Salut le forum
Une fonction personnalisée (Il en existe plusieurs variantes)
Code à mettre dans un module VBAFunction 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 couleursFunction 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)] -
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