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

SeriesCollection Diagramm korrekt verarbeiten

SeriesCollection Diagramm korrekt verarbeiten
11.04.2015 17:46:34
Malte
Hallo,
ich erstelle z.Z. ein Diagramm mittels einer Sub. Ein Teil hieraus lautet:
Sub test
dim Extremwerte as Series
Set Extremwerte = ActiveChart.SeriesCollection.NewSeries
With Extremwerte
.Name = ""
.Values = ws.Range("F4:F5")
.XValues = ws.Range("D4:D5")
.ChartType = xlXYScatter
.Format.Line.Visible = msoFalse
.MarkerStyle = 8
.MarkerSize = 7
.MarkerBackgroundColor = RGB(0, 255, 0)
End With
End Sub
Ich würde nun gerne die "Markierungslinenfarbe" aus stellen. Der Makrorecorder gibt mir dazu folgende Syntax:
ActiveChart.SeriesCollection(2).Select
Selection.Format.Line.Visible = msoFalse
Kann ich irgendwie die SeriesCollectionnummer von meiner Serie "Extremwerte" herausfinden, bzw. das direkt mit in die neue Seriengeneration einpflegen? Wenn ich es direkt in den "with"-Block eintrage, hat das ganze keinen Effekt. Ich nehme an, es liegt an dem ".SeriesCollection", da ich Extremwerte als ".SeriesCollection.NewSeries" definiert habe.
Der Hintergrund hierzu ist, dass weite Einträge in das Diagramm mittels Extremwerte folgen und somit die "2" nicht immer korrekt ist.
Vielen Dank!
Gruß!

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SeriesCollection Diagramm korrekt verarbeiten
11.04.2015 18:12:57
Nepumuk
Hallo,
wenn du der Collection einen Namen geben würdest, dann könntest du sie darüber ansprechen.
Set Extremwerte = ActiveChart.SeriesCollection.NewSeries

With Extremwerte
.Name = "Extremwerte"

Public Sub Test2()
    Dim Extremwerte As Series
    With ActiveChart.SeriesCollection
        Set Extremwerte = .Item("Extremwerte")
    End With
    Extremwerte.Format.Line.Visible = msoFalse
End Sub

Gruß
Nepumuk

Anzeige
AW: SeriesCollection Diagramm korrekt verarbeiten
11.04.2015 18:25:44
Malte
Hallo,
vielen Dank für die Antwort.
Leider habe ich nicht ganz verstanden wie du das gemeint hast.
Ich würde das gerne in derselben Routine erledigen. Ich habe nun sowas probiert:
Sub test()
Dim Verlauf As Series, Extremwerte As Series, GGW As Series
Set Verlauf = ActiveChart.SeriesCollection.NewSeries
With Verlauf
.ChartType = xlXYScatterLinesNoMarkers
.Name = Range("C2").Value
.Values = ws.Range("F8:F576")
.XValues = ws.Range("D8:D576")
End With
Set Extremwerte = ActiveChart.SeriesCollection.NewSeries
With Extremwerte
.Name = "Extremwerte"
.Values = ws.Range("F4:F5")
.XValues = ws.Range("D4:D5")
.ChartType = xlXYScatter
.Format.Line.Visible = msoFalse
.MarkerStyle = 8
.MarkerSize = 7
Extremwerte.Format.Line.Visible = msoFalse
.MarkerBackgroundColor = RGB(60, 120, 255)
End With
With ActiveChart.SeriesCollection("Extremwerte")
.Format.Line.Visible = msoFalse
End With
End Sub

Das erzeugt zwar keinen Fehler allerdings ist der Kreis um den Marker immernoch da.
Alternativ, bzw. sogar die bessere Möglichkeit, wäre wenn die Farbe der Umrandung UND die Backgroundcolor des Markers auf dieselbe Farbe der "Verlauf"-Series gesetzt wird. Dabei wird die Farbe der "Verlauf"-Serie "automatisch" von Excel gewählt. Hätte jemand hierzu einen Umsetzungsvorschlag?
Durch diese ganzen Eigenschaften blicke ich nicht mehr durch.
Vielen Dank!
Gruß!

Anzeige
AW: SeriesCollection Diagramm korrekt verarbeiten
11.04.2015 19:02:20
Nepumuk
Hallo,
so besser?
Public Sub Test2()
    Dim Extremwerte As Series
    Set Extremwerte = ActiveChart.SeriesCollection.Item("Extremwerte")
    Extremwerte.MarkerForegroundColorIndex = xlColorIndexNone
End Sub

Gruß
Nepumuk

Anzeige
P.S.
11.04.2015 19:05:22
Nepumuk
Das kannst du natürlich auch gleich beim Erstellen machen:
Sub test()
    Dim Extremwerte As Series
    
    Set Extremwerte = ActiveChart.SeriesCollection.NewSeries
    
    With Extremwerte
        .Name = "Extremwerte"
        .Values = Range("F4:F5")
        .XValues = Range("D4:D5")
        .ChartType = xlXYScatter
        .Format.Line.Visible = msoFalse
        .MarkerStyle = 8
        .MarkerSize = 7
        .MarkerBackgroundColor = RGB(0, 255, 0)
        .MarkerForegroundColorIndex = xlColorIndexNone 'Neu ########
    End With
End Sub

Anzeige
AW: P.S.
11.04.2015 19:09:37
Malte
Super, vielen Dank :-)

AW: P.S.
11.04.2015 19:25:40
Malte
Besteht die Möglichkeit, die Markerbackgroundcolor auf dieselbe Farbe zu setzten, die Excel für die "Verlauf"-Series automatisch gewählt hat?
Sub test()
Set Verlauf = ActiveChart.SeriesCollection.NewSeries
With Verlauf
.ChartType = xlXYScatterLinesNoMarkers
.Name = Range("C2").Value
.Values = ws.Range("F8:F576")
.XValues = ws.Range("D8:D576")
End With
Set Extremwerte = ActiveChart.SeriesCollection.NewSeries
With Extremwerte
.Name = "Extremwerte"
.Values = ws.Range("F4:F5")
.XValues = ws.Range("D4:D5")
.ChartType = xlXYScatter
.Format.Line.Visible = msoFalse
.MarkerStyle = 8
.MarkerSize = 7
.MarkerBackgroundColor = ActiveChart.SeriesCollection(1).Format.Line.ForeColor. _
ObjectThemeColor 'sowas in der Art?
.MarkerForegroundColorIndex = xlColorIndexNone
End With
End Sub
Vielen Dank!
Gruß!

Anzeige
AW: P.S.
11.04.2015 19:28:33
Malte
Besteht die Möglichkeit, die Markerbackgroundcolor auf dieselbe Farbe zu setzten, die Excel für die "Verlauf"-Series automatisch gewählt hat?
Sub test()
Set Verlauf = ActiveChart.SeriesCollection.NewSeries
With Verlauf
.ChartType = xlXYScatterLinesNoMarkers
.Name = Range("C2").Value
.Values = ws.Range("F8:F576")
.XValues = ws.Range("D8:D576")
End With
Set Extremwerte = ActiveChart.SeriesCollection.NewSeries
With Extremwerte
.Name = "Extremwerte"
.Values = ws.Range("F4:F5")
.XValues = ws.Range("D4:D5")
.ChartType = xlXYScatter
.Format.Line.Visible = msoFalse
.MarkerStyle = 8
.MarkerSize = 7
.MarkerBackgroundColor = ActiveChart.SeriesCollection(1).Format.Line.ForeColor. _
ObjectThemeColor 'sowas in der Art?
.MarkerForegroundColorIndex = xlColorIndexNone
End With
End Sub
Vielen Dank!
Gruß!

Anzeige
AW: P.S.
11.04.2015 19:44:25
Nepumuk
Hallo,
.MarkerBackgroundColor = ActiveChart.SeriesCollection(1).Format.Line.ForeColor.RGB
Gruß
Nepumuk

AW: P.S.
11.04.2015 19:45:42
Malte
Vielen vielen Dank!
Gruß!

AW: P.S.
11.04.2015 19:47:09
Malte
Leider werden Marker nun weiß, obwohl die "Verlaufs"-Linie das normale blau hat.
Gruß
Malte

AW: Datei zu dem Problem
12.04.2015 09:33:41
Nepumuk
Hallo,
anscheinend lässt sich die automatische Linienfarbe nicht auslesen. Wenn du beim anlegen der Linie eine eigene Farbe vergibst, dann funktioniert mein Code.
Gruß
Nepumum

Anzeige
AW: Datei zu dem Problem
12.04.2015 10:31:04
Malte
Hallo,
ok. Das ist schade.
Dann muss ich mit RGB Farben arbeiten. Vielen Dank!
Gruß!

AW: Datei zu dem Problem
12.04.2015 10:37:04
Nepumuk
Hallo,
jetzt hab ich doch einen Weg gefunden. Die Border-Klasse enthält de richtige Farbe.
Sub test()
    
    Dim Verlauf As Series, Extremwerte As Series, GGW As Series
    
    Call Diagramm_leeren_Reinstoff
    
    With Tabelle1.ChartObjects("Diagramm_Reinstoff").Chart
        
        Set Verlauf = .SeriesCollection.NewSeries
        With Verlauf
            .ChartType = xlXYScatterLinesNoMarkers
            .Name = Range("C2").Value
            .Values = Range("F8:F576")
            .XValues = Range("D8:D576")
        End With
        
        Set Extremwerte = .SeriesCollection.NewSeries
        With Extremwerte
            .ChartType = xlXYScatter
            .Name = "Extremwerte"
            .Values = Range("F4:F5")
            .XValues = Range("D4:D5")
            .Format.Line.Visible = msoFalse
            .MarkerStyle = 8
            .MarkerSize = 7
            .MarkerBackgroundColor = Verlauf.Border.Color 'Neu '###############
            .MarkerForegroundColorIndex = xlColorIndexNone
        End With
        
        Set GGW = .SeriesCollection.NewSeries
        With GGW
            .Values = Range("F6:F7")
            .XValues = Range("D6:D7")
        End With
    End With
End Sub

Gruß
Nepumuk

Anzeige
AW: Datei zu dem Problem
12.04.2015 15:39:27
Malte
Suuuper.
Vielen danke für Deine Mühe!
Gruß
Malte

Charts mit VBA sind echt bescheiden...
12.04.2015 16:11:57
Malte
Verdammt.
In der kompletten Tabelle plotte ich für verschiedene Temperaturen diese 3 Datenreihen.
Dabei funktionieren die ersten drei Temperaturen einwandfrei, wobei Excel immer die Gesamtanzahl an Kurven in dem Diagramm verwendet, um die Farbe automatisch zu setzen.
Werden für eine Temperatur T4 die Kurven 10,11 und 12 geplottet passiert jedoch etwas komisches. Bei der 12. Kurve (GGW Temperatur 4) werden die Farben der Kurven 8 (Extremwerte T3) und 9 (GGW T3) auf falsche, hellere, Werte gesetzt.
Ich verstehe nicht warum das passiert. Ich denke jedoch, dass das Problem umfangreicher ist und Du hast dir bereits schon soviel Mühe gegeben.
Ich werde RGB Farben verwenden, dann siehts nicht so gut aus, aber dieses merkwürdige Problem tritt nicht auf.
Vielen Dank!
Gruß
Malte
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige