Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Untersch. Farbe in Diagramm je nach Wert | Herbers Excel-Forum


Betrifft: Untersch. Farbe in Diagramm je nach Wert von: Tim
Geschrieben am: 16.08.2012 20:46:10

Hallo an alle,

ich habe eine Frage zu einem einfachen (Säulen-)Diagramm und hoffe, Ihr könnt mir weiterhelfen:

Gibt es hier eine Möglichkeit, dass die Säulen automatisch eine bestimmte Farbe erhalten, je nachdem, wie groß der zugrundeliegende Wert ist, ähnlich wie einer bedingten Formatierung im Bezug auf Zellen ?

Beispiel:
Ist der Wert einer Säule 50 oder kleiner, soll sie rot erscheinen, liegt er zwischen 50 und 100 orange etc.
Insgesamt gibt es 5 verschiedene Bereiche, in denen sich der Wert einer Säule bewegen kann.

Viele Grüße und vielen Dank Euch im Voraus für jeden Tipp,
Tim

  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Tim
Geschrieben am: 16.08.2012 21:04:41

Hallo,

ich habe im Netz folgenden Code gefunden.

Hier habe ich jedoch zwei Probleme:
1) Ich muss immer auf das Diagramm klicken bevor ich den Code laufen lasse.
2) Wenn der Code läuft, färbt er zwar die Diagrammbalken ein, allerdings mit völlig anderen Farben, als von mir in den Zellen A17:A21 vorgegeben.

VG und nochmals danke für jeden Tipp,
Tim


  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Beverly
Geschrieben am: 16.08.2012 22:00:43

Hi Tim,

schau dir mal das Beispiel Balkenfarbe Referenzabhängig auf meiner HP, Seite "Diagramme" an ( Link zur Vorschau ) - das bezieht sich zwar auf ein Balkendiagramm, ist aber bei einem Säulendiagramm genau so.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Tim
Geschrieben am: 16.08.2012 22:31:45

Hallo Karin,

vielen Dank für Deine Antwort !

Das ist glaube ich nicht ganz, wonach ich suche oder ich habe es falsch verstanden.
Ich kann hier leider nur die Vorschau, nicht aber den eigentlichen Link öffnen, das liegt wohl an den Sicherheitseinstellungen hier.

Ich suche nach einem Weg, dass die Säulen automatisch eine bestimmte Farbe erhalten, je nach dem, in welchem Bereich sich der entsprechende Wert gerade befindet (0-49 = rot, 50 bis 99 = orange, 100 bis 149 = grün, 150 bis 199 = blau, ab 200 = lila).

VG und nochmals danke,
Tim


  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Tim
Geschrieben am: 16.08.2012 22:42:52

Hallo,

hier noch ein kleiner Nachtrag:
Das Problem mit dem benötigten Anklicken des Diagramms habe ich gelöst.

Was mir jetzt nur noch fehlt, ist eine Möglichkeit, Farben exakt definieren zu können, da in meinem Code die Balken vollkommen anders eingefärbt werden, als ich in den entsprechenden Zellen vorgegeben habe.

VG,
Tim


  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Josef Ehrensberger
Geschrieben am: 16.08.2012 22:55:05


Hallo Tim,

in Zeile x kannst du doch die Farben bestimmen.




« Gruß Sepp »



  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Tim
Geschrieben am: 16.08.2012 23:18:00

Hallo Sepp,

vielen Dank und sorry, ich hatte wohl vergessen, den Code zu posten - hier mein letzter Stand der Dinge:

Es funktioniert alles, nur, dass ich hier eben die Farben nicht genau festlegen kann.

Option Explicit

Sub ColorByValue()
  Dim rPatterns As Range
  Dim iPattern As Long
  Dim vPatterns As Variant
  Dim iPoint As Long
  Dim vValues As Variant
  Dim rValue As Range

  Set rPatterns = ActiveSheet.Range("A17:A21")
  vPatterns = rPatterns.Value
  
  ActiveSheet.ChartObjects("Chart 2").Activate
  With ActiveChart.SeriesCollection(1)
    vValues = .Values
    For iPoint = 1 To UBound(vValues)
      For iPattern = 1 To UBound(vPatterns)
        If vValues(iPoint) <= vPatterns(iPattern, 1) Then
          .Points(iPoint).Interior.ColorIndex = _
              rPatterns.Cells(iPattern, 1).Interior.ColorIndex
          Exit For
        End If
      Next
    Next
  End With
  Range("A1").Select
End Sub
VG,
Tim


  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Josef Ehrensberger
Geschrieben am: 16.08.2012 23:29:09


Hallo Tim,

Sub ColorByValue()
  Dim rPatterns As Range
  Dim iPattern As Long
  Dim iPoint As Long
  Dim vValues As Variant
  Dim rValue As Range
  
  With ActiveSheet
    Set rPatterns = .Range("A17:A21")
    
    With .ChartObjects("Chart 2").Chart.SeriesCollection(1)
      vValues = .Values
      For iPoint = 1 To UBound(vValues)
        For iPattern = 1 To rPatterns.Count
          If vValues(iPoint) <= rPatterns(iPattern, 1) Then
            .Points(iPoint).Format.Fill.ForeColor.RGB = rPatterns(iPattern, 1).Interior.Color
            Exit For
          End If
        Next
      Next
    End With
  End With
  
End Sub






« Gruß Sepp »



  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Tim
Geschrieben am: 16.08.2012 23:40:11

Hallo Sepp,

vielen vielen Dank dafür - das ist spitze !! :-)

Ich habe nur noch eine kleine Frage dazu:
Auf meinem Blatt sind insgesamt 5 Diagramme, für die alle das gleiche gelten soll.
Kann ich die hier irgendwie einbinden oder muss ich den Hauptteil des Codes fünf mal kopieren ?

VG und nochmals danke,
Tim


  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Josef Ehrensberger
Geschrieben am: 16.08.2012 23:43:23


Hallo Tim,

wenn der Farbbereich für alle der selbe ist, dann so.

Sub ColorByValue()
  Dim objChrt As ChartObject
  Dim rPatterns As Range
  Dim iPattern As Long
  Dim iPoint As Long
  Dim vValues As Variant
  Dim rValue As Range
  
  With ActiveSheet
    Set rPatterns = .Range("A17:A21")
    For Each objChrt In .ChartObjects
      With objChrt.Chart.SeriesCollection(1)
        vValues = .Values
        For iPoint = 1 To UBound(vValues)
          For iPattern = 1 To rPatterns.Count
            If vValues(iPoint) <= rPatterns(iPattern, 1) Then
              .Points(iPoint).Format.Fill.ForeColor.RGB = rPatterns(iPattern, 1).Interior.Color
              Exit For
            End If
          Next
        Next
      End With
    Next
  End With
  
End Sub






« Gruß Sepp »



  

Betrifft: AW: Untersch. Farbe in Diagramm je nach Wert von: Tim
Geschrieben am: 16.08.2012 23:54:15

Hallo Sepp,

das klappt absolut super - vielen Dank nochmal für die tolle Hilfe !

VG und bis zum nächsten Mal, :)
Tim


Beiträge aus den Excel-Beispielen zum Thema "Untersch. Farbe in Diagramm je nach Wert"