Office: Diagrammfarbe gemäß Zellfarbe

Helfe beim Thema Diagrammfarbe gemäß Zellfarbe in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, im Rahmen meiner Abschlussarbeit habe ich eine Frage an euch. Es geht um ein Tool in dem Kraftwerksdaten durch die Auswahl... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Markus Lang, 10. November 2021.

  1. Diagrammfarbe gemäß Zellfarbe


    Hallo zusammen,
    im Rahmen meiner Abschlussarbeit habe ich eine Frage an euch. Es geht um ein Tool in dem Kraftwerksdaten durch die Auswahl verschiedener Parameter verglichen werden können. In meiner Rentabilitätsuntersuchung will ich ein Dashboard in Excel erstellen, dass sich je nach Eingabe (auch im Programm Excel) dementsprechend anpasst. Sehr gerne würde ich dabei in einem Säulendiagramm die Säulenfarbe gemäß der bedingten Formatierung anpassen. Ich bin leider kein Meister im Bereich VBA, habe schon ein paar Dinge ausprobiert komme jedoch nicht weiter. Bestenfalls sollte sich die Farbe automatisch anpassen, ohne das der Code ständig neu ausgeführt werden muss.
    Eine Beispieldatei steht zur Verfügung.
    Vielen Dank im Voraus, ich freue mich sehr auf eine Antwort.

    Gruß

    Markus
     
    Markus Lang, 10. November 2021
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi Markus,

    die Datenpunkte (in deinem Beispiel die Säulen) eines Diagramms können nicht automatisch die Farbe einer Zelle annehmen, und schon gar nicht die einer bedingten Formatierung. Deshalb muss ein entsprechendes Makro immer wieder neu ausgeführt werden. Aber man kann das Worksheet_Change-Ereignis des Tabellenblattes mit den Daten verwenden, damit er bei Änderung eines Eintrags automatisch wieder ausgelöst wird. Mache also einen Rechtsklick auf den Reiter des Blattes "Werte_1" -> Code anzeigen und kopiere folgenden Code ins Fenster des VBA-Editors:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim strBereich As String
        Dim lngPunkt As Long
        If Not Intersect(Target.Cells(1), Columns(2)) Then
            If Target.Cells(1).FormatConditions.Count > 0 Then
                With Worksheets("Diagramm_1").ChartObjects(1).Chart.SeriesCollection(2) '<== hier die Nummer der Datenreihe angeben!!!
                    strBereich = Split(.Formula, ",")(2)
                    For lngPunkt = 1 To .Points.Count
                        .Points(lngPunkt).Interior.Color = Range(strBereich).Cells(lngPunkt).DisplayFormat.Interior.Color
                    Next lngPunkt
                End With
            End If
        End If
    End Sub
    
    Immer wenn der Inhalt eine Zelle in Spalte B geändert wird, welche eine bedingte Formatierung enthält, wird der Code neu ausgeführt. Er läuft dabe in einer Schleife über alle Zellen die Diagrammdaten enthalten und prüft, welche Bedingung erfüllt ist. Der dazugehörende Datenpunkt im Diagramm wird dann mit der Farbe der erfüllten Bedingung gefärbt.
    Vergiss nicht, die Mappe im Format xlsm (Excel-Arbeitsmappe mit Makros) abzuspeichern.


    Diagrammfarbe gemäß Zellfarbe GrußformelDiagrammfarbe gemäß Zellfarbe Beverly's Excel - Inn
     
    1 Person gefällt das.
  3. Hallo Karin,
    vielen Dank für deine schnelle Unterstützung, es hat super geklappt. Eine Frage habe ich diesbezüglich noch. Das Bild "Eingabewerte" zeigt das Dashboard, in dem der Programmanwender seine Anlagendaten eingibt. Die Felder in der Farbe orange definieren dabei Pflichteingabefelder. Die restlichen Zellen will ich am Ende mit einem Schreibschutz versehen um fehlerhafte Eingaben zu vermeiden. Ist es möglich, dass der von dir erstelle VBA-Code auch startet, wenn der Inhalt einer Zelle im Tabellenblatt "Eingabegrößen" verändert wird (gerne auch auf das gesamte Tabellenblatt bezogen), denn die Kostenaufstellung wird leider vom Benutzer nicht verändert. Diese wird automatisch vom Programm errechnet. Deinen VBA-Code habe ich in das Tabellenblatt "Diagramme_VBA" eingefügt, das Diagramm auf dem Tabellenblatt "Eingabewerte" ist rein über die Kamera-Funktion in Excel vom "echtem" Diagramm auf dem Tabellenblatt "Diagramme_VBA" gespiegelt worden. Leider kann ich die gesamte Datei nicht hochladen. Über eine Antwort bzw. einen Tipp freue ich mich sehr, bitte mach dir deswegen aber keine Umstände.

    Ich wünsche dir noch einen schönen Nachmittag:)

    Gruß,
    Markus


    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strBereich As String
    Dim lngPunkt As Long
    If Not Intersect(Target.Cells(1), Columns(2)) Then
    If Target.Cells(1).FormatConditions.Count > 0 Then
    With Worksheets("Diagramme_VBA").ChartObjects(1).Chart.SeriesCollection(1)
    strBereich = Split(.Formula, ",")(2)
    For lngPunkt = 1 To .Points.Count
    .Points(lngPunkt).Interior.Color = Range(strBereich).Cells(lngPunkt).DisplayFormat.Interior.Color
    Next lngPunkt
    End With
    End If
    End If
    End Sub
     
    Markus Lang, 10. November 2021
    #3
  4. Beverly
    Beverly Erfahrener User

    Diagrammfarbe gemäß Zellfarbe

    Hi Markus,

    der Code muss sich in dem Tabellenblatt befinden, in dem deine Eingaben gemacht werden. Nun stellt sich aber die Frage: sind die Daten in Spalte "Kapitalwerte" Formelergebnisse oder werden sie tatsächlich von Hand eingegeben? Falls sie Formelergebnisse sind - auf welche Spalten des Tabellenblattes bezieht sich diese Formel?

    Andere Frage: weshalb benutzt du die Kamerafunktion und erstellst das Diagramm nicht gleich in diesem Tabellenblatt?


    Diagrammfarbe gemäß Zellfarbe GrußformelDiagrammfarbe gemäß Zellfarbe Beverly's Excel - Inn
     
  5. Hallo Karin,
    habe die Kamerafunktion verwendet, da ich noch Probleme mit der Zuweisung der Zellen im Tabellenblatt "Eingabewerte" habe (Not Intersect(Target.Cells(1), Columns(2)). Im Tabellenblatt "Diagramme_VBA" funktioniert der Code, dachte ich könnte das Problem so beheben, hier fehlen mir einfach die Kenntnisse. Gerne kann das Diagramm auch direkt auf dem Tabellenblatt "Eingabewerte" generiert werden. Das Diagramm holt sich seine Werte aus einer Berechnung bzw. Formel, über die der Kapitalwert gebildet wird (siehe Bild Eingabewerte neu). Anbei habe ich noch eine abgespeckte Variante der Arbeitsmappe hochgeladen.

    Schönen Abend,
    Markus
     
    Markus Lang, 10. November 2021
    #5
  6. Beverly
    Beverly Erfahrener User
    Hi Markus,

    du musst die Zellen überwachen, die zu einer Änderung der Diagrammdaten bzw. zur Änderung des Formelergebnisses in Spalte I führen. Das ist bei dir Spalte H - also musst du Spalte H überwachen:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim strBereich As String
        Dim lngPunkt As Long
        If Not Intersect(Target.Cells(1), Columns(8)) Is Nothing Then
            If Target.Cells(1).Offset(0, 1).FormatConditions.Count > 0 Then
                With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
                    strBereich = Split(.Formula, ",")(2)
                    For lngPunkt = 1 To .Points.Count
                        .Points(lngPunkt).Interior.Color = Range(strBereich).Cells(lngPunkt).DisplayFormat.Interior.Color
                    Next lngPunkt
                End With
            End If
        End If
    End Sub
    
    Und da das Diagramm im aktiven Blatt liegt kannst du auch direkt ActiveSheet verwenden.


    Diagrammfarbe gemäß Zellfarbe GrußformelDiagrammfarbe gemäß Zellfarbe Beverly's Excel - Inn
     
  7. Hallo Karin,

    jetzt hat alles funktioniert. Es freut mich sehr, wie du uns allen hier im Forum weiterhilfst!
    Vielen Dank für deine Unterstützung!:)
    Schöne Grüße,

    Markus
     
    Markus Lang, 10. November 2021
    #7
Thema:

Diagrammfarbe gemäß Zellfarbe

Die Seite wird geladen...
  1. Diagrammfarbe gemäß Zellfarbe - Similar Threads - Diagrammfarbe gemäß Zellfarbe

  2. Zellfarbe per Formel definieren

    in Microsoft Excel Hilfe
    Zellfarbe per Formel definieren: Hallo, ich habe für Notizen mehrerer Personen einen einfachen Kalender erstellt. Pro Monat ein Plan mit Zeilen je Mitarbeiter. Der Kalender aktualisiert sich jedes Jahr über Eingabe des...
  3. Nur die Zellfarbe kopieren

    in Microsoft Excel Hilfe
    Nur die Zellfarbe kopieren: Hallo zusammen, ich möchte mithilfe eines Markos aus einer kompletten Range von dem Sheet Roadmap nur die Zellfarbe kopieren. Die Ziel Range (Sheet Reporting) ist genau groß, nur die Zellen sind...
  4. Anzahl leere Zeilen einfügen gemäß Anzahl Zeilen in Zwischenablage

    in Microsoft Excel Hilfe
    Anzahl leere Zeilen einfügen gemäß Anzahl Zeilen in Zwischenablage: Hallo, ich möchte über Zeile B per VBA leere Zeilen einfügen. Die Anzahl der Zeilen soll der Anzahl der Zeilen in der Zwischenablage entsprechen (in der Zwischenablage befindet sich kopierter...
  5. Zufallszahlen gemäß Verteilung erstellen

    in Microsoft Excel Hilfe
    Zufallszahlen gemäß Verteilung erstellen: Hallo, ich hab jetzt schon einige Zeit Versucht und nach Lösungen im Internet gesucht wie man Zufallszahlen gemäß einer Verteilung erstellt. Habe das Gefühl ein Brett vor dem Kopf zu haben....
  6. Füllfarbe der Form von Zelle automatisch übernehmen

    in Microsoft Excel Hilfe
    Füllfarbe der Form von Zelle automatisch übernehmen: Hallo, ich habe folgendes Problem, für einen Ortsplan habe ich den Ort in aktuell 4 Gruppen aufgeteilt. Jede Straße hat eine eigene Zellfarbe erhalten. Im Ortsplan mit den ganzen Straßen habe ich...
  7. bedingte Zellfarbe auf Diagramm übertragen

    in Microsoft PowerPoint Hilfe
    bedingte Zellfarbe auf Diagramm übertragen: Hallo zusammen, ich habe ein Diagramm erstellt, in dem die Zellfarbe über eine bedingte Formatierung per Drop Down ausgewählt wird. Ich möchte das die bedingte Zellfarbe dann auch im Diagramm...
  8. Excel Zellfarbe kopieren auf 2. Tabellenplatt

    in Microsoft Excel Hilfe
    Excel Zellfarbe kopieren auf 2. Tabellenplatt: Hallo zusammen, ich habe folgendes Problem, ich frage in mehren Tabellenblättern die Zellenwerte aus Tabelle 1 ab und möchte nun auch dass er mir die Zellfarbe die ich in Tabelle1 vergeben habe...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden