Colore di un grafico dalle celle con i suoi dati

Formulazione del problema

Vorrei che le colonne dell'istogramma (o le sezioni del grafico a torta, ecc.) avessero automaticamente il colore utilizzato per riempire le celle corrispondenti con i dati di origine:

Anticipando le grida sorpresi e indignate dei singoli compagni, va notato che, ovviamente, il colore del riempimento del diagramma può essere modificato anche manualmente (fare clic con il tasto destro sulla colonna – Formato punto/serie (Formatta punto dati/serie) ecc. – nessuno discute. Ma in pratica, ci sono molte situazioni in cui è più facile e conveniente farlo direttamente nelle celle con i dati, quindi il grafico dovrebbe essere ridisegnato automaticamente. Prova, ad esempio, a impostare il riempimento per regione per le colonne di questo grafico:

Penso che tu abbia un'idea, vero?

Soluzione

Nient'altro che una macro può farlo. Pertanto, apriamo Editor di Visual Basic dalla scheda sviluppatore (Sviluppatore — Editor di Visual Basic) o premere la scorciatoia da tastiera Alt + F11, inserire un nuovo modulo vuoto tramite il menu Inserisci – Modulo e copia lì il testo di una tale macro, che farà tutto il lavoro:

Sub SetChartColorsFromDataCells() If TypeName(Selezione) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Exit Sub End If Imposta c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ","") Imposta 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  

Ora puoi chiudere Visual Basic e tornare a Excel. Usare la macro creata è molto semplice. Seleziona il grafico (area del grafico, non area del tracciato, griglia o colonne!):

ed esegui la nostra macro con il pulsante Macro linguetta sviluppatore (Sviluppatore — Macro) o con una scorciatoia da tastiera Alt + F8. Nella stessa finestra, in caso di uso frequente, è possibile assegnare una scorciatoia da tastiera alla macro tramite il pulsante parametri (Opzioni).

PS

L'unico neo è l'impossibilità di utilizzare una funzione simile nei casi in cui il colore è assegnato alle celle dei dati di origine utilizzando regole di formattazione condizionale. Sfortunatamente, Visual Basic non dispone di uno strumento integrato per leggere questi colori. Ci sono, ovviamente, alcune “stampelle”, ma non funzionano per tutti i casi e non in tutte le versioni.

  • Cosa sono le macro, come usarle, dove inserire codice macro in Visual Basic
  • Formattazione condizionale in Excel 2007-2013
  • Novità nei grafici in Excel 2013

Lascia un Commento