Fonctions excel
Fermé
papoujp
-
12 juil. 2010 à 10:01
laxatif2 Messages postés 8 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 20 juillet 2010 - 13 juil. 2010 à 06:04
laxatif2 Messages postés 8 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 20 juillet 2010 - 13 juil. 2010 à 06:04
A voir également:
- Fonctions excel
- Liste déroulante excel - Guide
- Excel fonction si et - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
2 réponses
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
950
Modifié par Mytå le 13/07/2010 à 12:25
Modifié par Mytå le 13/07/2010 à 12:25
Salut le forum
Une fonction personnalisée (Il en existe plusieurs variantes)
Code à mettre dans un module VBA
La formule : =SommeSiCouleur(A1:A10, 3)
Ou encore sans connaitre la valeur de la palette des couleurs
La formule : =SumByColor(A1:A10, B1)
Mytå
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
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)]
laxatif2
Messages postés
8
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
20 juillet 2010
13 juil. 2010 à 06:04
13 juil. 2010 à 06:04
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
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