Graphique en fonction des valeurs d'une ListBo

Bonjour à toute et à tous,

Je souhaiterais créer un graphique type camembert qui reprennent les valeurs d'une liste déroulante pour une plage de cellules quelconque.

Au préalable, j'ai noté 4 valeurs de text : blanc, vert, jaune, rouge dans 4 cellules différentes (4Lx2C), que j'ai renommé "couleur" (à l'aide du coin à gauche à côté des formules). J'ai créé ensuite une liste déroulante dans une nouvelle cellule à partir de Données--> validation de données-->Autoriser liste-->Source-->couleur.

J'ai étendue la liste déroulante à la plage de cellule (20Lx1C).

A partir de là, je souhaite créer un graphique camembert afin de connaitre la proportion de chaque choix sur ma plage de (20Lx1C).

Je suis à votre disposition pour toute vos questions,

Merci,

Karlos

Bonsoir Jean-Eric

Voici donc mon fichier.

En feuille 2, ma plage de choix de couleur que j'ai nommé "couleur" dans la zone nom.

En feuille 1, l'utilisateur choisit la couleur de chaque produit dans la liste déroulante de chaque cellule.

Je souhaiterais créer un diagramme en secteurs type camembert qui s'actualise automatiquement en fonction des valeurs de chacun des produits.

Le must serait d'avoir une la couleur de fond en fonction des couleurs . Ex: Orange=fond de cellule orange.

Merci pour votre aide,

Karlos

Bonjour,

Es-tu certain d'avoir envoyé le bon fichier?

A te relire.

Bonjour Jean-Eric,

voici le fichier.

Je reste à ta disposition.

Karlos

19project-1.xlsx (8.76 Ko)

Up

Bonjour,

Une proposition.

Bonjour Jean Éric,

Merci pour votre reponse ! Est il possible d'enregistrer votre fichier en Excel 2003. Je ne peux pas exécuter votre tableau croise dynamiqueavec une version antérieure à la votre.

Cordialement,

Karlos

Re,

Version en xls, mais quel était le problème?

Bonsoir Jean-Eric,

Merci pour votre aide, est-il possible que vous m'expliquiez votre code ligne par ligne svp ?

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("C3:C22")) Is Nothing Then

If Target.Count > 1 Then Exit Sub

ActiveWorkbook.RefreshAll

End If

End Sub

Merci,

Karlos

Bonjour,

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    ' Cet événement se produit lorsque les cellules de la plage de calcul C3:C22
    ' sont modifiées par l'utilisateur.
    If Not Application.Intersect(Target, Range("C3:C22")) Is Nothing Then
        ' Si plusieurs cellules sont sélectionnées on sort de la procédure.
        ' (presque inutile dans ce cas avec les listes déroulantes)
        If Target.Count > 1 Then Exit Sub
        ' Actualisation du rapport de tableau croisé dynamique.
        ActiveWorkbook.RefreshAll
    End If
End Sub
Rechercher des sujets similaires à "graphique fonction valeurs listbo"