Couleur d'un graphique à partir de cellules avec ses données

Formulation du problème

J'aimerais que les colonnes de l'histogramme (ou les tranches du camembert, etc.) aient automatiquement la couleur qui a été utilisée pour remplir les cellules correspondantes avec les données source :

Anticipant les cris surpris et indignés de camarades individuels, il convient de noter que, bien sûr, la couleur du remplissage dans le diagramme peut également être modifiée manuellement (clic droit sur la colonne - Format point/série (Format point de données/série) etc. – personne ne discute. Mais en pratique, il existe de nombreuses situations où il est plus facile et plus pratique de le faire directement dans les cellules contenant des données, puis le graphique doit alors être repeint automatiquement. Essayez, par exemple, de définir le remplissage par région pour les colonnes de ce graphique :

Je pense que vous voyez l'idée, non?

Solution

Rien d'autre qu'une macro ne peut le faire. Par conséquent, nous ouvrons Éditeur Visual Basic de l'onglet promoteur (Développeur — Éditeur Visual Basic) ou appuyez sur le raccourci clavier Alt + F11, insérez un nouveau module vide via le menu Insertion – Module et copiez-y le texte d'une telle macro, qui fera tout le travail :

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Exit Sub End If Set c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ",") Set r = Range(m(2)) For i = 1 To r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Vous pouvez maintenant fermer Visual Basic et revenir à Excel. L'utilisation de la macro créée est très simple. Sélectionnez le graphique (zone graphique, pas zone de tracé, grille ou colonnes !) :

et exécutez notre macro avec le bouton Macros languette promoteur (Développeur — Macros) ou avec un raccourci clavier Alt + F8. Dans la même fenêtre, en cas d'utilisation fréquente, vous pouvez affecter un raccourci clavier à la macro à l'aide du bouton Paramètres (Options).

PS

Seule ombre au tableau, l'impossibilité d'utiliser une fonction similaire pour les cas où la couleur est attribuée aux cellules des données source à l'aide de règles de mise en forme conditionnelle. Malheureusement, Visual Basic n'a pas d'outil intégré pour lire ces couleurs. Il existe bien sûr certaines « béquilles », mais elles ne fonctionnent pas dans tous les cas et pas dans toutes les versions.

  • Que sont les macros, comment les utiliser, où insérer le code de macro dans Visual Basic
  • Mise en forme conditionnelle dans Excel 2007-2013
  • Quoi de neuf dans les graphiques dans Excel 2013

Soyez sympa! Laissez un commentaire