Ga naar hoofdinhoud

Hoe een grafiek te kleuren op basis van celkleur in Excel?

Normaal gesproken is bij het maken van een diagram de kleur van de kolombalk de standaardkleur. Als u de gevulde kleur op elke balk moet opmaken op basis van de celkleuren zoals in de volgende schermafbeelding, hoe kunt u dit dan in Excel oplossen?

Kleur de grafiek met een of meerdere gegevensreeksen op basis van celkleur met VBA-codes

Kleur de grafiek met een of meerdere gegevensreeksen op basis van celkleur met een geweldige functie


Kleur de grafiek met een of meerdere gegevensreeksen op basis van celkleur met VBA-codes

Kleur de grafiek met één gegevensreeks op basis van celkleur

Met de volgende VBA-code kunt u snel de kleur van de grafiek wijzigen die één gegevensreeks bevat op basis van de oorspronkelijke kleur van de celwaarden, doe dit als volgt:

1. Maak eerst een staaf- of kolomdiagram zoals in de volgende schermafbeelding (Selecteer gegevens en klik op Invoegen > Kolom- of staafdiagram invoegen):

2. Houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

3. Klikken Invoegen > Moduleen plak de volgende code in het modulevenster.

VBA-code: kleurenkaartbalken met één gegevensreeks op basis van celkleur:

Sub ColorChartColumnsbyCellColor()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, xRows As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    With xChart.SeriesCollection(1)
        Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(1), "!")(1))
        xRows = xRg.Rows.Count
        Set xRg = xRg(1)
        For I = 1 To xRows
            .Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)
        Next
    End With
End Sub

Note: In de bovenstaande code, grafiek 1 is de kaartnaam die u wilt gebruiken, wijzig deze dan in uw eigen naam.

4. Druk na het plakken van de bovenstaande code op F5 sleutel om deze code uit te voeren, en de kleur van de grafiekbalken is gewijzigd op basis van de originele celkleur, zie screenshot:


Kleur de grafiek met meerdere gegevensreeksen op basis van celkleur

Als uw diagram meerdere gegevensreeksen bevat, past u de volgende VBA-code toe:

1. Maak een staaf- of kolomdiagram dat meerdere gegevensreeksen bevat, zoals in de volgende schermafbeelding:

2. Houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

3. Klikken Invoegen > Moduleen plak de volgende code in het modulevenster.

VBA-code: kleurenkaartbalken met meerdere gegevensreeksen op basis van celkleur:

Sub CellColorsToChart()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, J As Long
    Dim xRowsOrCols As Long, xSCount As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    xSCount = xChart.SeriesCollection.Count
    For I = 1 To xSCount
        J = 1
        With xChart.SeriesCollection(I)
            Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
            If xSCount > 4 Then
                xRowsOrCols = xRg.Columns.Count
            Else
                xRowsOrCols = xRg.Rows.Count
            End If
            For Each xCell In xRg
                .Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                .Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                J = J + 1
            Next
        End With
    Next
End Sub

4. Druk vervolgens op F5 sleutel om deze code uit te voeren, worden de diagrambalken in één keer gevuld met de originele celkleur, zie screenshot:

Opmerkingen:

1. In de bovenstaande code, grafiek 1 is de kaartnaam die u wilt gebruiken, wijzig deze dan in uw eigen naam.

2. Deze code kan ook worden toegepast op een lijndiagram.


Kleur de grafiek met een of meerdere gegevensreeksen op basis van celkleur met een geweldige functie

Door de bovenstaande codes te gebruiken, zullen de kleuren van de grafiek niet altijd overeenkomen met de celkleur, om dit probleem op te lossen, zal ik hier een handig hulpmiddel introduceren - Verander de grafiekkleur volgens de celkleur of Kutools for ExcelMet deze handige functie kunt u de grafiek snel en gemakkelijk inkleuren op basis van de celkleur.

Opmerking: Om dit toe te passen Verander de grafiekkleur volgens de celkleur, ten eerste moet u het Kutools for Excelen pas de functie vervolgens snel en gemakkelijk toe.

Na het installeren van Kutools for Excel, doe dit als volgt:

1. Voer eerst de grafiek in die u wilt gebruiken, selecteer vervolgens de grafiek en klik vervolgens op Kutools > Grafieken > Hulpmiddelen voor grafieken > Verander de grafiekkleur volgens de celkleur, zie screenshot:

2. En dan verschijnt er een promptvenster, klik alstublieft OK knop.

3. Nu is de door u geselecteerde grafiek gekleurd op basis van de celkleuren zoals hieronder weergegeven screenshots:

Kleur de grafiek met één gegevensreeks op basis van celkleur

Kleur de grafiek met meerdere gegevensreeksen op basis van celkleur

Download en gratis proef Kutools voor Excel nu!


Meer relatieve grafiekartikelen:

  • Maak een staafdiagram over een ander staafdiagram in Excel
  • Wanneer we een geclusterd staaf- of kolomdiagram maken met twee gegevensreeksen, worden de twee gegevensreeksstaven naast elkaar weergegeven. Maar soms moeten we de overlay of het overlappende staafdiagram gebruiken om de twee gegevensreeksen duidelijker te vergelijken. In dit artikel zal ik het hebben over het maken van een overlappend staafdiagram in Excel.
  • Kopieer een diagramformaat naar anderen in Excel
  • Stel dat uw werkblad meerdere verschillende soorten diagrammen bevat, u hebt één diagram naar uw behoefte opgemaakt en nu wilt u deze diagramopmaak toepassen op andere diagrammen. Natuurlijk kunt u anderen handmatig een voor een formatteren, maar dit zal veel tijd verspillen. Zijn er snelle of handige manieren om het ene diagramformaat naar het andere in Excel te kopiëren?
  • Markeer maximale en minimale gegevenspunten in een diagram
  • Als u een kolomdiagram heeft waarvan u de hoogste of kleinste gegevenspunten met verschillende kleuren wilt markeren om ze te onderscheiden, zoals in de volgende schermafbeelding. Hoe kon u de hoogste en kleinste waarden identificeren en vervolgens de gegevenspunten in de grafiek snel markeren?
  • Maak een stappendiagram in Excel
  • Een stappendiagram wordt gebruikt om te laten zien dat de wijzigingen met onregelmatige tussenpozen hebben plaatsgevonden, het is een uitgebreide versie van een lijndiagram. Maar er is geen directe manier om het in Excel te maken. In dit artikel zal ik het hebben over het stap voor stap maken van een stappendiagram in het Excel-werkblad.
  • Maak voortgangsbalk in Excel
  • In Excel kan een voortgangsbalk u helpen om de voortgang naar een doel te volgen, zoals in de volgende schermafbeelding. Maar hoe kunt u een voortgangsbalk maken in het Excel-werkblad?

Beste Office-productiviteitstools

🤖 Kutools AI-assistent: Een revolutie teweegbrengen in de data-analyse op basis van: Intelligente uitvoering   |  Genereer code  |  Aangepaste formules maken  |  Analyseer gegevens en genereer grafieken  |  Roep Kutools-functies aan...
Populaire functies: Zoek, markeer of identificeer duplicaten   |  Verwijder lege rijen   |  Combineer kolommen of cellen zonder gegevens te verliezen   |   Ronde zonder formule ...
Super opzoeken: Meerdere criteria VLookup    VLookup met meerdere waarden  |   VOpzoeken over meerdere bladen   |   Fuzzy opzoeken ....
Geavanceerde vervolgkeuzelijst: Maak snel een vervolgkeuzelijst   |  Afhankelijke vervolgkeuzelijst   |  Multi-select vervolgkeuzelijst ....
Kolom Beheerder: Voeg een specifiek aantal kolommen toe  |  Kolommen verplaatsen  |  Schakel de zichtbaarheidsstatus van verborgen kolommen in  |  Vergelijk bereiken en kolommen ...
Uitgelichte functies: Raster focus   |  Ontwerpweergave   |   Grote formulebalk    Werkmap- en bladbeheer   |  resource Library (Auto-tekst)   |  Datumkiezer   |  Combineer werkbladen   |  Cellen coderen/decoderen    Stuur e-mails per lijst   |  Super filter   |   Speciaal filter (filter vet/cursief/doorhalen...) ...
Top 15 gereedschapsets12 Tekst Tools (toe te voegen tekst, Tekens verwijderen, ...)   |   50+ tabel Types (Gantt Chart, ...)   |   40+ Praktisch Formules (Bereken leeftijd op basis van verjaardag, ...)   |   19 Invoeging Tools (QR-code invoegen, Afbeelding invoegen vanaf pad, ...)   |   12 Camper ombouw Tools (Getallen naar woorden, Currency Conversion, ...)   |   7 Samenvoegen en splitsen Tools (Geavanceerd Combineer rijen, Gespleten cellen, ...)   |   ... en meer

Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen.  Klik hier om de functie te krijgen die u het meest nodig heeft...

Omschrijving


Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!
Comments (8)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
For more than 1 Chart:



Sub CellColorsToChart()'Updateby Extendoffice
Dim xChart As Chart
Dim I As Long, J As Long, Y As Long
Dim xRowsOrCols As Long, xSCount As Long Dim xRg As Range, xCell As Range
On Error Resume Next

For Y = 1 To 100Set xChart = ActiveSheet.ChartObjects("Chart "&Y).Chart If xChart Is Nothing Then Exit Sub
xSCount = xChart.SeriesCollection.Count
For I = 1 To xSCount
J = 1
With xChart.SeriesCollection(I)
Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
If xSCount > 4 Then
xRowsOrCols = xRg.Columns.Count
Else
xRowsOrCols = xRg.Rows.Count
End If
For Each xCell In xRg
.Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
.Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
J = J + 1
Next
End WithNext
Next
End Sub

This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
This comment was minimized by the moderator on the site
It is ok. But... why simply not going to "Format Legend Entry" option in every data series in the chart, and go "Fill" and make it the color you want. I mean... all is ok, but a VBA code for this simple task is kinda overkill. But thanks. Appreciate you share it.
This comment was minimized by the moderator on the site
i cant make it work :( is this supposed to work on a stacked bar chart? Thanks
This comment was minimized by the moderator on the site
This was an awesome start, but the colors of the chart and the cells don't always match. Any idea why?
This comment was minimized by the moderator on the site
Thank you for the codes! How would you add a conditional format when the format is already established?
This comment was minimized by the moderator on the site
Thank you for these codes! This was exactly what I've been looking for with one detail not quite fitting. When I ran the code, the bar graphs colored in correctly but not legend which stayed unchanged. Is there a variation to the code that would include the legend? Or is there a way to match the Legend to the changes in the chart without a code?
This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations