somme selon couleurs de nombre

SurfingJoe

XLDnaute Nouveau
Bonjour,

Je voudrai additionner tous les nombres en bleu de la feuille dans la celulle E1, tous les chiffres en vert en G1, les violet en I1.

Qui peut m'aider?

Merci [file name=NotedefraisEssai.zip size=4238]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/NotedefraisEssai.zip[/file]
 

Pièces jointes

  • NotedefraisEssai.zip
    4.1 KB · Affichages: 49

myDearFriend!

XLDnaute Barbatruc
Bonsoir SurfingJoe,

Sans garantie aucune, ci-joint ton fichier modifié avec utilisation d'une fonction personnalisée :
Function SomCoul() As Currency
Dim
Plage As Range, Cellule As Range
Dim coul As Integer
      Application.Volatile
      coul = Application.Caller.Font.ColorIndex
      With ActiveSheet
            Set Cellule = .UsedRange.Cells(.UsedRange.Count)
            Set Plage = Union(.Cells.SpecialCells(xlCellTypeConstants, 1), _
                              .Cells.SpecialCells(xlCellTypeFormulas, 1))
            Set Plage = Application.Intersect(.Range(.Cells(4, 2), Cellule), Plage)
            For Each Cellule In Plage
                  If Cellule.Font.ColorIndex = coul Then
                        SomCoul = SomCoul + Cellule.Value
                  End If
            Next Cellule
      End With
End Function
Pour l'appeler depuis la feuille Excel, il suffit de donner à la cellule réceptrice la couleur de police désirée, puis de taper la formule suivante :
=SomCoul()


Cordialement, [file name=mDF_SommeCouleur.zip size=8484]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_SommeCouleur.zip[/file]
 

Pièces jointes

  • mDF_SommeCouleur.zip
    8.3 KB · Affichages: 68
S

Surfing Joe

Guest
Bonsoir,

j'ai encore un souci, lorsque j'ajoute un deuxi¨¨me ou troisi¨¨me mois, l'addition se fait sur toutes les feuilles et non feuille par feuille!

Peut-on utiliser la fonction feuille par feuille?

Merci [file name=SommeCouleur2M.zip size=9905]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/SommeCouleur2M.zip[/file]
 

Pièces jointes

  • SommeCouleur2M.zip
    9.7 KB · Affichages: 52

myDearFriend!

XLDnaute Barbatruc
Bonsoir SurfingJoe, Claudy, le Forum,

J'ai tenté une adaptation de la fonction personnalisée pour remédier au problème :

Function SomCoul() As Currency
'Somme des cellules ayant la même couleur de police que la cellule appelante
'myDearFriend! 06/11/05
Dim Plage As Range, Cellule As Range, PlageCoul As Range, Target As Range
Dim Coul As Integer
      Application.Volatile
      Set Target = Application.Caller
      Coul = Target.Font.ColorIndex
      With Application.Caller.Parent
            Set Plage = .UsedRange.Cells
            For Each Cellule In Plage
                  If Cellule.Address <> Target.Address Then
                        If Cellule.Font.ColorIndex = Coul Then
                              If PlageCoul Is Nothing Then Set PlageCoul = Cellule
                              Set PlageCoul = Union(PlageCoul, Cellule)
                        End If
                  End If
            Next Cellule
      End With
      If Not PlageCoul Is Nothing Then
            SomCoul = Application.WorksheetFunction.Sum(PlageCoul)
      Else
            SomCoul = 0
      End If
End Function
Cordialement, [file name=mDF_SommeCouleur2.zip size=9830]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_SommeCouleur2.zip[/file]
 

Pièces jointes

  • mDF_SommeCouleur2.zip
    9.6 KB · Affichages: 52

myDearFriend!

XLDnaute Barbatruc
Bonsoir herveb, le fil,

Dans mon post ci-dessus, il y a le fichier joint en exemple, tu devrais pouvoir reproduire la même chose dans ton projet.
Ton classeur est ouvert :
   [ol][li]Tu fais ALT + F11 pour te retrouver dans l'éditeur VBA.[/li]
[li]Puis, CTRL + R pour afficher l'explorateur de projet (s'il n'est pas déjà affiché). L'explorateur de projet c'est la petite fenêtre au haut à gauche.[/li]
[li]Tu double-cliques sur 'VBAProject(LeNomDeTonClasseur)' pour développer l'arborescence.[/li]
[li]Tu fais menu Insertion / Module. Un nouveau module de code nommé 'Module1' apparaît.[/li]
[li]Et dans la fenêtre principale de ce nouveau module, tu fais un copier-coller du code à cet endroit (toutes les lignes de 'Function SomCoul()....' à 'End Function' incluses).[/li]
[li]Tu peux ensuite fermer l'éditeur VBA et sauvegarder ton classeur.[/li][/ol]
Pour appeler cette fonction personnalisée depuis une feuille Excel de ton classeur, il suffit de donner à la cellule réceptrice la couleur de police désirée, puis de taper la formule suivante : =somcoul()

Cordialement,
 
A

AV

Guest
Ave,

''...cela marche impeccable...''
Je ne voudrais pas réfreiner ton enthousiasme mais les fonctions qui dénombrent ou somment en fonction d'une couleur (motif ou police) ou...d'un format quelconque ne sont absolument pas fiables car un changement de format n'entraine aucun recalcul automatique !
A plus ou moins long terme c'est l'eereur garantie !
On peut y arriver en utilisant des procs évènementielles pour la mise à jour des calculs mais ça ''plombe'' le fichier inutilement et il reste toujours des incertitudes.
La bonne question à se poser serait de savoir quels sont les critères qui font que les cellules sont coloréés. Employer une MEFC et servir de ces critères pour faire une somme conditionnelle.

AV [aaa]
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch