![]() |
Betrifft: Balkenfarbe in Abhängigkeit von Achsenbeschrift
von: mokia
Geschrieben am: 10.11.2014 11:50:44
Hallo zusammen,
ich habe folgendes (funktionierendes) Script gefunden, welches die Balkenfarbe eines Diagramms entsprechend der Beschriftung der X-Achse anpasst. Die Beschriftung steht in A2 bis E2. Ich möchte diese nun von "zeilenbasiert" auf "spaltenbasiert" (A2:A6) umschreiben. Wahrscheinlich liegt das Problem im zweiten Script irgendwo in dem Bereich von "EndXl...". Über einen Hinweis, warum das zweite Script nicht funktioniert wäre ich sehr dankbar.
Sub Diagramm_formatieren() Dim rng As Range Dim i As Long Dim a As Long Dim l As Long a = 0 For l = 1 To Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Points.Count Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Point(l).Interior.ColorIndex = 1 Next l For i = 1 To Worksheets(5).Range("A2").End(xlToRight).Column Set rng = Worksheets(5).Range("A2").Offset(0, i - 1) If rng.EntireColumn.Hidden = False Then If rng.Value = "Rot" Then Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Points(i - a).Interior.ColorIndex = 3 ElseIf rng.Value = "Gelb" Then Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Points(i - a).Interior.ColorIndex = 44 ElseIf rng.Value = "Blau" Then Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Points(i - a).Interior.ColorIndex = 5 End If Else a = a + 1 End If Next i End Subzweite Script:
Sub Diagramm_formatieren() Dim rng As Range Dim i As Long Dim a As Long Dim l As Long a = 0 For l = 1 To Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Points.Count Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Point(l).Interior.ColorIndex = 1 Next l For i = 1 To Worksheets(5).Range("A6").End(xlUp).Row Set rng = Worksheets(5).Range("A6").Offset(0, i - 1) If rng.EntireRow.Hidden = False Then If rng.Value = "Rot" Then Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Points(i - a).Interior.ColorIndex = 3 ElseIf rng.Value = "Gelb" Then Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Points(i - a).Interior.ColorIndex = 44 ElseIf rng.Value = "Blau" Then Worksheets(5).ChartObjects("Diagramm 1").Chart. SeriesCollection(1).Points(i - a).Interior.ColorIndex = 5 End If Else a = a + 1 End If Next i End Sub
![]() ![]() |
Betrifft: AW: Balkenfarbe in Abhängigkeit von Achsenbeschrift
von: Rudi Maintaire
Geschrieben am: 10.11.2014 12:01:31
Hallo,
For i = 1 To Worksheets(5).Range("A2").End(xldown).Row
Set rng = Worksheets(5).Range("A2").Offset(i-1, 0)
Gruß
Rudi
![]() ![]() |
Betrifft: AW: Balkenfarbe in Abhängigkeit von Achsenbeschrift
von: Rudi Maintaire
Geschrieben am: 10.11.2014 12:01:46
Hallo,
For i = 1 To Worksheets(5).Range("A2").End(xldown).Row
Set rng = Worksheets(5).Range("A2").Offset(i-1, 0)
Gruß
Rudi
![]() ![]() |
Betrifft: AW: Balkenfarbe in Abhängigkeit von Achsenbeschrift
von: mokia
Geschrieben am: 10.11.2014 13:32:35
Funktioniert - vielen Dank!
Im Idealfall möchte ich gern die Pflege der Balkenfarbe nicht im Makro sondern in einem Tabellenblatt 6 durchführen. Also in A1 (Tab6) soll rot als Überschrift stehen und A2:A?? die Werte haben, für die dann ein roter Balken angezeigt wird.
Wie kann ich diese Zellen ansprechen und die folgende Zeile entsprechend anpassen?
If rng.Value = "Rot" Then
![]() ![]() |
Betrifft: verstehe ich nicht. owT
von: Rudi Maintaire
Geschrieben am: 10.11.2014 13:54:33
![]() ![]() |
Betrifft: AW: verstehe ich nicht. owT
von: mokia
Geschrieben am: 10.11.2014 14:07:33
sry, dann hab ich mich schlecht ausgedrückt. Im Moment habe ich ja eine 1:1 Beziehung: Achsenbeschriftungen "rot" = Balken rote Farbe. Nun möchte ich Achsenbeschrift Wert1, Wert2, Wert3... alle rot haben; Wert1a, Wert2a, Wert3a alle grün usw. Im Makro möchte ich die Werte (30-50 je Farbe) nicht fest reinschreiben sondern über ein weiteres Tabellenblatt pflegen. Wie könnte ich dies im vorhin genannt script an der Stelle
If rng.Value = "Rot" Then
einbinden?
![]() ![]() |
Betrifft: AW: Balkenfarbe in Abhängigkeit von Achsenbeschrif
von: mokia
Geschrieben am: 10.11.2014 15:36:53
sry, dann hab ich mich schlecht ausgedrückt. Im Moment habe ich ja eine 1:1 Beziehung: Achsenbeschriftungen "rot" = Balken rote Farbe. Nun möchte ich Achsenbeschrift Wert1, Wert2, Wert3... alle rot haben; Wert1a, Wert2a, Wert3a alle grün usw. Im Makro möchte ich die Werte (30-50 je Farbe) nicht fest reinschreiben sondern über ein weiteres Tabellenblatt pflegen. Wie könnte ich dies im vorhin genannt script an der Stelle
If rng.Value = "Rot" Then
einbinden?
![]() |