Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1564to1568
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

Balkendiagramm färben in Abhängigkeit von Spalte

Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 12:54:38
Spalte
Hallo,
im Anhang befindet sich meine aktuelle Version eines Projektplans. Ich habe bereits über VBA den Code implementiert um ein Diagramm zu erstellen mit Hilfe der ausgeblendeten Spalten.
Nun würde ich ganz gern die Balken in Abhängigkeit vom Fortschritt des Projekts färben (Spalte "G").
Wie bekomme ich diese Färbung anhand der Spalte G hin? Könnte mir dabei jemand helfen?
https://www.herber.de/bbs/user/114268.xlsm
Vielen Dank

27
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 13:20:57
Spalte
Hallo Nico,
die einzelnen Reihen kann st du mit ActiveChart.SeriesCollection(2).Points(i). ansprechen

for i = 1 to 24
with ThisWorkbook.Sheets("Projektplan")
if .Cells(i+7,7).value > 50 then
ActiveChart.SeriesCollection(2).Points(i).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) _
End if
end with
next i
Deine Grenzen und Farbwerte kannst Du entsprechend eintragen.
Gruß
yummi
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 13:31:23
Spalte
Hallo yummi,
das hat mir sehr weitergeholfen. Vielen Dank :)
Was bedeutet das .Cells(i+7,7) ?
Kann ich in der for auch i = 1 to RowMax eingeben oder ähnliches?
Dann hätte ich noch eine weitere Frage. Ist es auch möglich einen Balken nur zu x % Prozent zu färben und den Rest quasi schwarz zu lassen? Damit man den Fortschritt direkt an der Balken-Einfärbung sieht?
Vielen Dank für eure Hilfe
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 13:45:06
Spalte
Hallo Niko,
da Du Datenreihen von 1 bis 24 hast (siehe for Schleife) deine dazugehörigen Daten aber in Zeile 7 beginnen (ups seh gerade Fehler, solle i+6 heissen) musst Du 6 (nicht 7) draufaddieren damit vwerweisst .Cells(i+6,7).value im ersten Durchlauf (i=1) auf .Cells(7,7) entspricht G7 im nächsten Durchlauf auf Cells(8,7) entspricht G8 usw.
Wenn Du es von also von der Anzahl der Zeilen abhängig machen willst:

with ThisWorkbook.Sheets("Projektplan")
for i = 7 to .Cells(Rows.Count, 1).End(xlUp).Row   'von zeile 7 bis ende
if .Cells(i,7).value > 50 then                'wenn der Wert in Zeile i Spalte 7 (G) >  _
50
'hier von i 6 abziehen, damit Zeile 7 zu 1. Datenreihe gehört usw.
ActiveChart.SeriesCollection(2).Points(i-6).Format.Fill.ForeColor.RGB = RGB(255, 0,  _
0)
End if
if .Cells(i,7).value  _
50
ActiveChart.SeriesCollection(2).Points(i-6).Format.Fill.ForeColor.RGB = RGB(0, 255,  _
0)
End if
end with
next i
Ich habe bewusst kein else gemacht, falls du mehrer Kriterien zum einfarben hast, kannst du mit elseif und else machen oder mit select case, je nach Geschmack und Schreibaufwand.
Ich hoffe, es ist klarer geworden
Gruß
yummi
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 14:04:39
Spalte
Hallo yummi,
das mit dem index i habe ich nun verstanden, Danke.
Mir wird nun aber angezeigt, dass end with ohne with nicht geht, daraufhin habe ich das next i in den Block darüber getan.
Nun sagt er mir aber, dass die Methode Rows für das Objekt "_GLOBAL" fehlgeschlagen ist. Was genau heißt das für mich?
Gruß Niko
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 14:08:23
Spalte
Hallo yummi,
ich habe das Problem gelöst :).
For i = 7 To .Cells(Worksheets("Projektplan").Rows.Count, 1).End(xlUp).Row

Das Worksheets Projektplan hat anscheinend gefehlt.
Gruß Niko
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 14:13:46
Spalte
Hallo ein letztes Mal yummi :),
zu diesem "dynamischen" einfärben eines Balkens weißt du auch nichts weiteres oder? Was ich vor 2 Posts erwähnt hatte.
Gruß Niko
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 14:25:21
Spalte
Hallo Nico,
so wie ich dich verstanden habe wolltest Du je nach Wert in spalte G eine andere Farbe wählen, das jedenfalls hab ich dir umgesetzt. Die WErte bei denen du welche Farbe nehmen willst kannst Du ja in der if Bedingung festlegen und wen ndu mehrere bereiche hast dann mit mehrereren Abfragen hintereinander.
Oder was meinst Du mit dynamisch einfärben?
Bereiche z.b. so

case select .Cells(i,7).value
case 0 to 10: hier dein Einfärben mit Farbe x
case 11 to 20: hier einfärben mit Farbe y
case 21.. to 30:.....
case else: Farbe für undefinierten Wert
end select
oder halt mit den if Bereichen, so wie du es schon hast dann: .Cells(i,7).Value >= 0 and .Cells(i,7).value Gruß
yummi
dein einfärben
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 14:29:47
Spalte
Hallo yummi,
das hat auch alles echt super geklappt und bin ich auch mit zufrieden.
Mit "dynamisch" habe ich mich wohl ein bisschen unverständlich ausgedrückt.
Ich meine das der Balken y komplett schwarz ist. Wenn nun jedoch 60 % eingetragen werden dann soll dieser zu 60 % blau gefärbt sein und die restlichen 40 % weiterhin schwarz sein.
Ist so eine Modifikation möglich?
Wenn noch etwas unklar ist, kann ich es versuchen noch genauer zu erklären.
Gruß
Niko
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 14:56:20
Spalte
Hallo Nico,
nur so als Idee, du müsstest in deiner Datentabelle beide Berecihe abbilden, den schon erledigten Bereich und den Restbereich, die beiden Datenreihen hängst Du aneinander (im Prinzig so wie es war, bevor dudie eine Dtenreihe gelöscht hast. Beide zusammen ergeben den Gesamtwert, den Du jetzt schon darstellst, dann kannst du beide bereiche unterschiedlich einfärben.
Gruß
yummi
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 15:03:08
Spalte
Hallo yummi,
also sehr viel Aufwand, da ich mal annehme, dass das verknüpfen von 2 Datensätzen zu einem auch nicht gerade sehr leicht sein wird..
Dann lasse ich es erstmal so denke ich.. :)
Vielen lieben Dank
Gruß Niko
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 15:22:38
Spalte
Hallo Nico,
ist nicht aufwendig, schau es dir an (fehlt nur der Teil mit dem einfärben nach Wert.
https://www.herber.de/bbs/user/114275.xlsm
Gruß
yummi
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 15:31:13
Spalte
Hallo yummi,
jaa das ist genau das was ich suche.
Perfekt! :)
Vielen Dank.
Die Farbeeinstellungen erfolgen dann im Makro 2? Letzendlich müsste das ja nichts anderes sein oder?
Gruß Niko
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 15:45:51
Spalte
Hallo Nico,
die Farbeinstellungen machst Du genau wie vorher auch oder mit dem zsätzlichen Schnipsel ein paar posts weiter oben, dann kann Du die Einfärbung individuell nach Wert machen.
Gruß
yummi
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 09:43:29
Spalte
Guten Morgen yummi,
kannst du mir nochmal helfen?
Wie kann ich die Farbe anhand des Eintrages in der Spalte A bestimmen?
Das ich Welche nach dem Schema xxx-xxx-xxx rot/grün färbe und welche nach dem Schema xxx-xxx orange/gelb färbe?
Vielen Dank
Gruß Niko
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 10:28:41
Spalte
Hallo Nico,
den code dafür hattest du schon ;-)
hab es mal eingebaut mit eienr Unterscheidung auf Länge größer 3 Zeichen in Spalte A, damit du es im Beispiel sehen kannst. Musst du auf deien Bedürfnisse anpassen, siehe Kommentar im Code
https://www.herber.de/bbs/user/114287.xlsm
Gruß
yummi
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 10:37:05
Spalte
Hallo yummi,
das ich den Code dafür habe war mir noch bewusst. Ich würde dies jedoch ganz gern mit einem Regex lösen.
1. [a-zA-Z]{3,4}-\d{2}
2. [a-zA-Z]{3,4}-\d{2}-\d{3}
3. [a-zA-Z]{3,4}-\d{2}-[M][S]\d{2}
Wenn das sinnvoll ist.. Was ich jedoch annehme.
Leider weiß ich nur wie das in Java und C++ funktioniert. Ich kann dazu nochmal eine aktuelle Datei hochladen wenn du möchtest.
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 10:50:23
Spalte
Hallo Nico,
wenn dein Aufbau wirklich immer so ist
xxx-xxx und xxx-xxx-xxx
dan nschiesst du mit kannonen auf Spatzen ;-)
dann reicht eine Abfrage der Länge wenn größer 7 hast du xxx-xxx-xxx sonst xxx-xxx
wenn du willst kannst du noch eien bedingung per elseif hinzufügen
if len größer 7 'für xxx-xxx-xxx
elsif len = 6 'für xxx-xxx
else 'kürzer als xxx-xxx
dann hast du alles abgefangen.
Gruß
yummi
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 10:54:33
Spalte
Hallo yummi,
ich habe mir nochmal mehr Gedanken drüber gemacht und folgendes rausgefunden:
Phasen heißen ABC-10 es könnte jedoch auch mal ABCD heißen. (3-4 stellige Buchstabenfolge | - (Bindestrich) | 2 stellige Zahlenfolge)
Pakete heißen ABC-10-010 (3-4 stellige Buchstabenfolge | - | 2 stellige Zahlenfolge | - | 3 stellige Zahlenfolge).
Meilensteine heißen ABC-10-MS01 (3-4 stellige Buchstabenfolge | - | 2 stellige Zahlenfolge | - | 2 Buchstaben (die IMMER MS sind) gefolgt von einer 2 stelligen Zahl).
Deshalb auch die Regex:
1. [a-zA-Z]{3,4}-\d{2}
2. [a-zA-Z]{3,4}-\d{2}-\d{3}
3. [a-zA-Z]{3,4}-\d{2}-[M][S]\d{2}
Ist das besser nachvollziehbar?
Gruß Niko
Anzeige
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 11:31:39
Spalte
Hallo Nico

For i = 7 To 30
'Meilenstein
If Instr(1, ThisWorkbook.Sheets("Projektplan").Cells(i, 1).Value, "MS", vbTextCompare)  0 Then
With chtChart
.SeriesCollection(2).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
.SeriesCollection(3).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(0, 255, 0)
End With
End if
'Phasen
if InstrRev(ThisWorkbook.Sheets("Projektplan").Cells(i, 1).Value, "-", -1,  _
vbTextCompare) = 3 then
With chtChart
.SeriesCollection(2).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 127, 0)
.SeriesCollection(3).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 255, 0)
End With
'Pakete
else
With chtChart
.SeriesCollection(2).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 127, 0)
.SeriesCollection(3).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 255, 0)
End With
End If
Next i
sollte so passen, die Farben musst Du noch nach deinen Wünschen anpassen, ist ungetestet und ohne Editor eingegeben.
Gruß
yummi
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 11:39:35
Spalte
Hallo yummi,
vielen Dank erstmal :) Ich werde es mal testen.
Was hältst du sonst von der Alternative?
Irgendwas stimmt jedoch noch nicht, da er alles nach der Farbe des Else Zweiges macht...
With ThisWorkbook.Sheets("Projektplan")
For i = 7 To .Cells(Worksheets("Projektplan").Rows.Count, 1).End(xlUp).Row
If .Cells(i, 1).Value Like "[a-zA-Z]{3,4}-\d{2}" Then
With chtChart
.SeriesCollection(2).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
.SeriesCollection(3).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(0, 255, 0)
End With
ElseIf .Cells(i, 1).Value Like "[a-zA-Z]{3,4}-\d{2}-\d{3}" Then
With chtChart
.SeriesCollection(2).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 128, 0)
.SeriesCollection(3).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 255, 0)
End With
Else
With chtChart
.SeriesCollection(2).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
.SeriesCollection(3).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(0, 255, 255)
End With
End If
Next i
End With

AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 11:52:56
Spalte
Hallo Nico,
setz dir einen breakpoint am anfang der schleife und geh step bei step durch und schau ob das was passiert, das ist, was du erwartest.
Ich hab dir eine Lösung präsentiert, Du hast einen 2. thread parallel mit eienr anderen Lösung. Deine Entscheidung, was Du nehmen willst
Ich hab es nochmal mit deiern neuen Liste durchlaufen lassen, war ein kleienr bug drin so gehts:

For i = 7 To 30
Debug.Print ThisWorkbook.Sheets("Projektplan").Cells(i, 1).Value
'Meilenstein
If InStr(1, ThisWorkbook.Sheets("Projektplan").Cells(i, 1).Value, "MS", vbTextCompare)  0 Then
With chtChart
.SeriesCollection(2).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
.SeriesCollection(3).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(0, 255, 0)
End With
End If
'Phasen
If InStrRev(ThisWorkbook.Sheets("Projektplan").Cells(i, 1).Value, "-", -1,  _
vbTextCompare) = Len(ThisWorkbook.Sheets("Projektplan").Cells(i, 1).Value) - 3 Then
With chtChart
.SeriesCollection(2).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 127, 0)
.SeriesCollection(3).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 255, 0)
End With
'Pakete
Else
With chtChart
.SeriesCollection(2).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 127, 0)
.SeriesCollection(3).Points(i - 6).Format.Fill.ForeColor.RGB = RGB(255, 255, 0)
End With
End If
Next i
Gruß
yummi
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 11:59:04
Spalte
Hallo yummi,
habe gerade sowohl die erste als auch deine aktualisierte Version ausprobiert und er fliegt bei mir immer aus dem else Block raus "Ungültiger Parameter".
Woran könnte das liegen?
Gruß Niko
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 12:02:35
Spalte
Ergänzung:
Mein Fehler.. habe aus versehen eine Zeile gelöscht gehabt aus der Tabelle.
Hättest du jetzt noch eine Idee wie ich einen Jahreswechsel hinbekomme?
Wenn ich bei mir über 31.12.2017 gehe dann wechselt er ja die KW auf 1 und somit wird die Range ziemlich komisch gesetzt.. daran hatte ich noch nicht gedacht..
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 12:07:39
Spalte
Er scheint außerdem mit dem "MS" Probleme zu haben. Der Balken wird nicht anders gefärbt.
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 12:35:47
Spalte
Hallo yummi,
habe den Fehler gefunden wieso es nicht geht..
Wenn das Projekt "MS" im Namen beinhaltet geht es natürlich auch nicht.
Was aber genau bei diesem Beispiel der Fall ist "IMS-01" etc.
Ist ja logisch, das es dann nicht funktioniert. Ist es dann noch lösbar ohne Regex/Pattern?
Gruß Niko
AW: Balkendiagramm färben in Abhängigkeit von Spalte
15.06.2017 12:52:44
Spalte
Hallo Nico,

For i = 7 To 30
Debug.Print ThisWorkbook.Sheets("Projektplan").Cells(i, 1).Value
'Meilenstein
If InStr(1, ThisWorkbook.Sheets("Projektplan").Cells(i, 1).Value, "MS",  _
vbTextCompare) 
Was deine Darstellung über mehrere Jahre betrifft, wie soll das denn ausehen?
Mit einem zusätzlichen Scale über den KWs? oder formateirt als 2017 KW19
So langsam artet das in Arbeit aus
Gruß
yummi
AW: Balkendiagramm färben in Abhängigkeit von Spalte
14.06.2017 14:18:44
Spalte
Hallo ein letztes Mal yummi :),
zu diesem "dynamischen" einfärben eines Balkens weißt du auch nichts weiteres oder? Was ich vor 2 Posts erwähnt hatte.
Gruß Niko

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige