Anzeige
Archiv - Navigation
1392to1396
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Farbe für Balken in Diagramm zuordnen

Farbe für Balken in Diagramm zuordnen
25.11.2014 17:35:29
Marie
Hallo liebe Excel-Pros,
ich stecke leider fest und habe bisher nichts gefunden, das mit hilft (bzw., das ich verstehe...:-))
Ich habe ein Pivot-Chart erstellt und es schon geschafft, dass die Balken mit negativen Werten rot und die anderen grün gefärbt werden. Für eine bestimmte Größe, also einen bestimmten Balken (der auch immer denselben Namen haben wird) brauche ich aber eine andere Farbe (blau). Manuell kann ich diese natürlich ändern, aber es wird eine Menge von diesen Charts geben, die regelmäßig aktualisiert werden müssen und ich werde mit dem manuellen Anpassen dann vermutlich langsam wahnsinnig.
Geht es vllt mit einem Makro? Ich habe eine Beispieldatei hochgeladen, in der das Diagramm so aussieht, wie es am Ende sein soll.
Es wäre ganz großartig, wenn mit jemand helfen könnte!
Merci
Marie
https://www.herber.de/bbs/user/94017.xlsx

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbe für Balken in Diagramm zuordnen
25.11.2014 18:12:58
Stephan
Hallo Marie,
Zwei Fragen:
1) Wenn Du das Chart kopierst/duplizierst, bleiben die Farben doch erhalten, warum nicht so?
2) Wo befinden sich denn die Charts? Alle auf dem gleichen Tabellenblatt? Auf verschiedenen?
Gruß,
Stephan

AW: Farbe für Balken in Diagramm zuordnen
25.11.2014 18:28:16
Marie

  • Hi Stephan,
    zu 1: kopieren des Pivot Charts klappt bei mir nicht. Aber ich denke, selbst wenn; in der "richtigen" Datei sind es deutlich mehr Daten, es gibt dann sehr viele Gruppen, für die jeweils diese Grafik erzeugt werden soll. Allerdings gibt es in jeder Gruppe einen Ben, der auch immer Ben heißt und dessen Balken immer blau sein soll. Im Moment gehe ich auf Einfügen -> Pivot Chart und das so oft, bis der Anzahl Gruppen entsprechen viele Blätter mit jeweils einem Pivot Chart habe, dann setze ich in jedem Blatt den Filter auf eine der Gruppen und dann soll, pro Blatt & Gruppe, so ein Chart dabei rauskommen. Die grün/rot-Sache habe ich in einer Formatvorlage, das geht also. Aber in 35 Charts noch den Ben-Balken blau zu machen...ich dachte, das geht vllt in einem Makro
    zu 2: Die Charts sind also alle auf verschiedenen Blättern. Ich könne sie wahrscheinlich auch in einem speichern, falls das helfen würde. Sie sollen am Ende ohne in eine Power Point Präsi.
    Ich hoffe, das war nicht zu konfus
    LG

    Anzeige
    AW: Farbe für Balken in Diagramm zuordnen
    25.11.2014 20:06:21
    Christian
    hallo Marie,
    ein Ansatz:
    
    Option Explicit
    Sub TestIt()
    Dim wks As Worksheet
    Dim objCh As ChartObject
    Dim serCol As Series
    Dim i As Long, j As Long
    Dim vntXval
    For Each wks In ThisWorkbook.Worksheets
    For Each objCh In wks.ChartObjects
    For i = 1 To objCh.Chart.SeriesCollection.Count
    Set serCol = objCh.Chart.SeriesCollection(i)
    vntXval = serCol.XValues
    For j = 1 To UBound(vntXval)
    If vntXval(j) = "Ben" Then
    serCol.Points(j).Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
    Exit For
    End If
    Next
    Next
    Next
    Next
    Set serCol = Nothing
    End Sub
    
    Kommst du damit klar?
    Gruß Christian

    Anzeige
    AW: Farbe für Balken in Diagramm zuordnen
    25.11.2014 20:39:35
    Marie
    Hallo Christian,
    dankeschön! Ich habe das Makro eben in meine Testdatei eingefügt und es hat super funktioniert!
    Allerdings habe ich es danach mit mehr Dateng getestet und das klappt nicht :-( Habe ich es kaputt gemacht oder so...?
    https://www.herber.de/bbs/user/94020.xlsm
    LG und Danke!!

    AW: Farbe für Balken in Diagramm zuordnen
    25.11.2014 21:14:25
    Christian
    hallo Marie,
    nein, beim Einfügen des Codes kann man nichts kaputt machen ...
    Aber - in deiner aktuellen Datei lautet die Beschriftung der Werte ("XValue") nicht "Ben" sondern "1 Ben".
    Ich bin kein Profi bzgl. Pivot-Charts, aber eine voran gestellte "1" o.ä. kann man abfangen mit:
    
    For j = 1 To UBound(vntXval)
    If vntXval(j) Like "*Ben" Then
    serCol.Points(j).Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
    Exit For
    End If
    Next
    
    Tests mal, ob diese Änderung ausreicht
    Gruß
    Christian

    Anzeige
    AW: Farbe für Balken in Diagramm zuordnen
    25.11.2014 21:28:53
    Marie
    Hi Christian,
    das funktioniert :-) Super!! Hab es auch mit Gruppe A und B probiert, dann klappt es auch.
    Der Balken ist jetzt allerdings rot-blau gefärbt (bzw. grün-blau bei pos. Wert)
    Kann man da noch was machen...?
    Falls nicht, auf jeden Fall so oder so tausend Dank!!
    LG
    https://www.herber.de/bbs/user/94021.xlsm

    AW: Farbe für Balken in Diagramm zuordnen
    25.11.2014 21:55:58
    Christian
    Hi,
    du hast in deinem Chart nicht "Einfarbig", sondern "Farbverlauf" eingestellt
    Gib mir Bescheid, ob das mit folgendem Code läuft wie gwünscht (unter Xl-2010 sieht es bei mir jetzt so aus ...)
    Option Explicit
    Sub TestIt()
    Dim wks As Worksheet
    Dim objCh As ChartObject
    Dim serCol As Series
    Dim i As Long, j As Long
    Dim vntXval
    For Each wks In ThisWorkbook.Worksheets
    For Each objCh In wks.ChartObjects
    For i = 1 To objCh.Chart.SeriesCollection.Count
    Set serCol = objCh.Chart.SeriesCollection(i)
    vntXval = serCol.XValues
    For j = 1 To UBound(vntXval)
    If vntXval(j) Like "*Ben" Then
    With serCol.Points(j).Format.Fill
    .Solid
    .ForeColor.RGB = RGB(0, 112, 192)
    .BackColor.RGB = RGB(0, 112, 192)
    End With
    Exit For
    End If
    Next
    Next
    Next
    Next
    Set serCol = Nothing
    End Sub
    

    Gruß
    Christian

    Anzeige
    AW: Farbe für Balken in Diagramm zuordnen
    25.11.2014 22:06:00
    Marie
    Hi Christian,
    in Excel 2007 ist der Balken nicht blau, sondern weiß :-) Aber ansonsten ist es großartig!
    Danke!

    AW: Farbe für Balken in Diagramm zuordnen
    25.11.2014 22:12:34
    Marie
    Ahhh, ich glaube, das liegt daran, dass ja bei negativen Werten invertieren eingestellt ist...deshalb sind "negative" Balken nicht blau, sondern weiß!

    AW: Farbe für Balken in Diagramm zuordnen
    25.11.2014 23:20:25
    Christian
    Hi Marie,
    ja, ggf. ist das Verhalten mit der von dir verwendeten Formatvorlage zu erklären.
    Aber das Inverse von Blau sollte IMO nicht Weiß ergeben.
    In der Summe spielen da wahrscheinlich verschiedene Faktoren mit: Formatvorlage, formartierter Farbverlauf / Einfarbig, Makros, ggf. Excelversion, etc.
    Aber wenn eh schon einzelne Punkte der Charts per VBA formatiert werden, könnte man doch auch die Formate der restlichen Punkte per VBA erschlagen und auf die Formatvorlagen verzichten...
    Gruß
    Christian

    Anzeige
    AW: Farbe für Balken in Diagramm zuordnen
    26.11.2014 08:41:07
    Marie
    Guten Morgen!
    Also direkt im Makro die negativen Balken rot und die positiven grün zu färben? Kann ich dafür dann einfach einen Abschnitt einfügen:
    ...
    
    
    For i = 1 To objCh.Chart.SeriesCollection.Count
    Set serCol = objCh.Chart.SeriesCollection(i)
    vntXval = serCol.XValues
    For j = 1 To UBound(vntXval)
    If vntXval(j) Like "*Ben" Then
    serCol.Points(j).Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
    Exit For
    End If
    Next
    For j = 1 To UBound(vntXval)
    If vntXval(j)
    serCol.Points(j).Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
    Exit For
    End If
    Next
    ?
    So klappts irgendwie nicht ;-)
    LG
    Marie

    Anzeige
    AW: Farbe für Balken in Diagramm zuordnen
    26.11.2014 09:54:12
    Christian
    probier's mal so:
    Option Explicit
    Sub TestIt()
    Dim wks As Worksheet
    Dim objCh As ChartObject
    Dim serCol As Series
    Dim i As Long, j As Long
    Dim vntXval
    Dim vntVal
    For Each wks In ThisWorkbook.Worksheets
    For Each objCh In wks.ChartObjects
    For i = 1 To objCh.Chart.SeriesCollection.Count
    Set serCol = objCh.Chart.SeriesCollection(i)
    serCol.Format.Fill.Solid            ' einfarbig
    serCol.InvertIfNegative = False     ' nicht invertieren
    vntXval = serCol.XValues            ' Array der Namen
    vntVal = serCol.Values              ' Array der Werte
    ' rot, bzw. grün bei negativen und positiven Werten
    For j = 1 To UBound(vntVal)
    If vntVal(j) 
    Die RGB-Farben kannst du entsprechend anpassen (zw. 0 und 255)
    Für Grün zB. RGB(0, 176, 80) und für Blau RGB(79, 129, 189)
    Gruß
    Christian

    Anzeige
    AW: Farbe für Balken in Diagramm zuordnen
    26.11.2014 10:13:49
    Marie
    Christian, das ist spitze :-)
    Das ist absolut perfekt und viel schöner als vorher...Danke Danke!!!!

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige