Re : somme plage si caractere couleur
Re,
Suite à ton MP, voici quelques explictions :
Pour coller la macro dans un module de code, ouvre VBA en faisant ALT+F11.
Pour afficher l'explorateur de projets en haut à gauche, fait CTRL+R.
Sélectionne le projet qui correspond à ton fichier : VBAPoject(tonfichier).
Fait Insertion/Module et dans la partie droite colle le code.
Function SomCoul(plg As Range) : La fonction a un argument plg, qui correspond à une plage de cellule (1,2 3 .../...).
Dim cell As Range, TT As Single : déclaration des variables, cell correspond à une cellule et TT à un nombre.
Application.Volatile : permet le recalcul à chaque modification dans la feuille, comme ca les résultats sont toujours à jour.
For Each cell In plg : pour chaque cellule de la plage sélectionnée.
If cell.Font.ColorIndex <> xlColorIndexAutomatic Then : Si la police de caractère de la cellule (cell) est différente de "Automatique". (Dans 99,99% des cas, la police de la feuille est mise sur Automatique).
TT = TT + cell : Addition des valeurs de chaque cellule si elle répond à la condition.
End IF : fin du test sur la cellule.
Next : fin de la boucle sur la plage sélectionnée.
SomCoul = TT : Renvoie le total des valeurs des cellules qui correspondent à la condition.
End Function : Fin de la fonction.
Les couleurs ont un index de 1 à 44 (je crois), 1 = noir, 3 = rouge .../...
Si c'est toujours la même couleur de police, on peux tester avec son index comme ceci : If cell.Font.ColorIndex = 3 Then. Mais comme tu précises que c'est l'utilisateur qui sélectionne sa couleur, en passant par
<> xlColorIndexAutomatic, c'est plus pratique. Cela a un défaut : Si tu as plusieurs couleurs de police dans la plage sélectionnée, la fonction fera le calcul sur toutes ces cellules, pas seulement sur une seule couleur.
Voilà, si problème n'hésite pas à demander.
Bonne soirée