Graphique secteur à partir d'une mise en forme conditionnell

Bonjour,

j'essaye depuis quelques temps de créer un graphique secteur à partir d'une mise en forme conditionnelle, je m'explique :

J'ai fait une mise en forme conditionnelle sur un tableau qui colore les lignes si le texte de la colonne A contient un texte donné (ici A = rouge, B = vert)

J'aimerai à partir de cette mise en forme obtenir un graphique secteur qui reprendrai la somme de la colonne B si il a une mise en forme particulière comme dans le fichier joint (A1+A2+A3+A4 et B1+B2 dans notre exemple)

En VBA, j'ai essayé de tester la caractéristique "couleur" des cellules mises en forme via la mise en forme conditionnelle, mais il me renvoi la mise en forme de base (sans tenir compte de la mise en forme conditionnelle appliquée).

J'ai également essayé le graphique croisé dynamique...

J'ai pensé à une macro qui testerai le contenu de mes cellules une à une pour les mettre en forme (comme le ferait une mise en forme conditionnelle) et additionnerai ma colonne B au fur et à mesure...

Y-a-t-il une astuce plus simple?

D'avance merci,

Cordialement,

Marti_M

Bonjour,

Un premier jet en attendant plus de précisions.

En VBA, la couleur de MFC n'est pas reconnue, il faut simplement utiliser la même formule ou test que dans la MFC. Dans le code ci-dessous, on recherche les lettres A et B puis on totalise pour chaque lettre et on colore les cellules correspondantes. Pour l'instant, les totaux sont affichés dans une boite de message :

Sub Total()

    Dim Plage As Range
    Dim Cel As Range
    Dim Total_A As Double
    Dim Total_B As Double

    With Worksheets("Feuil1")

        Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))

    End With

    For Each Cel In Plage

        If InStr(Cel, "A") <> 0 Then

            Total_A = Total_A + Cel.Offset(, 1)
            Cel.Interior.ColorIndex = 3 'rouge
            Cel.Offset(, 1).Interior.ColorIndex = 3 'rouge

        ElseIf InStr(Cel, "B") <> 0 Then

            Total_B = Total_B + Cel.Offset(, 1)
            Cel.Interior.ColorIndex = 4 'vert
            Cel.Offset(, 1).Interior.ColorIndex = 4 'vert

        Else

            Cel.Interior.ColorIndex = 0 'automatique
            Cel.Offset(, 1).Interior.ColorIndex = 0 'automatique

        End If

    Next Cel

    MsgBox "Total concernant la lettre A : " & Total_A & _
           vbCrLf & _
           "Total concernant la lettre B : " & Total_B

End Sub

Hervé.

Ok,

je vais faire comme ça.

Dommage qu'on ne puisse pas le faire "directement" depuis une MFC

Merci !

Rechercher des sujets similaires à "graphique secteur partir mise forme conditionnell"