HERBERS Excel-Forum - das Archiv

Thema: Diagrammlinie ändern

Diagrammlinie ändern
reiner
Hallo Leute,

in der Beispielmappe wird mittels eines Makros ein Diagramm erstellt.

https://www.herber.de/bbs/user/168710.xlsb

Nun will ich die Diagrammerstellung erweitern indem statt einer Diagrammlinie künftig zwei Diagrammlinien erstellt werden.
Die erste Diagrammlinie soll die Daten im Bereich: A3 - A91 / Y3 - Y91 (Blau)
die zweite Diagrammlinie soll die Daten im Bereich: A92 - A109 / Y92 - Y109 (Rot) nachbilden, idealerweise mit unterschiedlichen Linienfarben, z.B.: Blau und Rot
Mit den unterschiedlichen Linienfarben soll der jeweilige Linienverlauf bis zum / ab dem "0"-Wert abgebildet werden.

Kann mir jemand weiterhelfen bei der Erweiterung ders vorh. Programmcodes?

mfg
reiner
2 Diagrammlinien, Verlauf anschließend
Beverly
Hi Reiner,

da die Datumswerte für die 2. Linie zeitlich nach denen der 1. Linie liegen, verwendet man anstelle eines Linien- besser ein Punkt(XY)-Diagramm:

Sub DiaErstellen()

Dim chrDia As Chart
Dim lngReihe As Long
ActiveSheet.ChartObjects.Delete
With ActiveSheet.ChartObjects.Add(200, 100, 1600, 1000).Chart
.ChartType = xlXYScatterLinesNoMarkers
.ChartArea.Interior.Color = RGB(256, 255, 0) 'gelb
.PlotArea.Interior.Color = RGB(202, 202, 208) 'hellgrau
.Legend.Interior.Color = RGB(0, 255, 0)
.HasTitle = True
With .ChartTitle
.Interior.Color = RGB(0, 0, 255)
.Characters.Font.Color = RGB(255, 255, 255)
End With
If .SeriesCollection.Count > 0 Then
For lngReihe = .SeriesCollection.Count To 1 Step -1
.SeriesCollection(lngReihe).Delete
Next lngReihe
End If
With .SeriesCollection.NewSeries
.XValues = Range("A3:A91")
.Values = Range("Y3:Y91")
.Format.Line.ForeColor.RGB = vbBlue 'RGB(90, 90, 90)
.Format.Line.Weight = 4.5
End With
With .SeriesCollection.NewSeries
.XValues = Range("A92:A109")
.Values = Range("Y92:Y109")
.Format.Line.ForeColor.RGB = vbRed
.Format.Line.Weight = 4.5
End With
.DisplayBlanksAs = xlInterpolated
End With
End Sub


Es ginge zwar auch mit einem Liniendiagramm, aber dann müssten die Daten im Tabellenblatt anders angeordnet werden - quasi 1 Spalte foretlaufend für alle Datums-(bzw. X-)Werte und jeweils eine eigene Spalte für die Messwerte, wobei die Zellen leer bleiben müssen, für die bei der betreffenden Linie keine Messunen vorliegen.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
AW: 2 Diagrammlinien, Verlauf anschließend
reiner
Hallo Karin,

Supervorschlag, danke dafür.
Eine Frage stellt sich jetzt aber noch:
Die Zelladressen Range("A3:A91") / Range("Y3:Y91") sowie Range("A92:A109") / Range("Y92:Y109") sind allesamt absolute Adressen die für 2024 zutreffen, jedoch in anderen Jahren nicht.
Ich möchte deswegen gern die Zelladressen "A91" / "Y91" / "A92" / "Y92" / "A109" / "Y109" als Variable eintragen.
z.B. in folgender Schreibweise, falls es so funktioniert:
.XValues = Range("A3:Ende_A1")
.Values = Range("Y3:Ende_Y1")
.XValues = Range("Anfang_A2:Ende_A2")
.Values = Range("Anfang_Y2:Ende_Y2")
Die Zellen "A3" und "Y3" sind absolut, benötigen keine Variable
Wie müsste ich die variablen Zelladressen dann definieren?

reiner
AW: 2 Diagrammlinien, Verlauf anschließend
Beverly
Hi Reiner,

die Adresse für einen Zellbereich kann so angegeben werden:

    Range(Cells(StartZeile, Spalte1), Cells(EndeZeile, Spalte2))


Dabei sind StartZeile und EndeZeile Variablen, denen vorher ein Wert zugewiesen werden muss. Die Variablen Spalte1 und Spalte2 müssen selbstverständlich auch belegt sein, wobei aber Spalte2 = Spalte1 sein kann.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
keine weiteren Fragen und restlos zufrieden
reiner


danke nochmals

reiner