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

Diagrammlegende bearbeiten

Diagrammlegende bearbeiten
19.06.2015 17:35:03
Malte
Hallo,
ich habe ein Diagramm mit dem Namen "Diagramm_Test". In diesem Diagramm plotte ich eine variable Anzahl von Datenreihen für verschiedene Temperaturen. Die Temperaturen heißen in der Legende z.B. "100 °C" oder "200 °C".
Nun plotte ich zusätzlich zwei weitere Kurven für jede Temperatur. Diese haben immer die gleichen Namen ("Extremwert" und "GGW") sodass ich folgende Struktur habe:
"100 °C"
"Extremwert"
"GGW"
"200 °C"
"Extremwert"
"GGW"
Ich würde gerne aufgrund des Namens ("Extremwert" und "GGW") der Datenlinie den Legeneintrag löschen.
Ich habe bereits folgendes probiert:
Sub Test()
i as Integer
Set cht = Sheets("Reinstoff").ChartObjects("Diagramm_Test").Chart
For i = cht.Legend.LegendEntries.Count To 1 Step -1
If cht.SeriesCollection(i).Name = "Extremwerte" Or cht.SeriesCollection(i).Name = "GGW"  _
Then
cht.Legend.LegendEntries(i).Delete
End If
Next i
End Sub
Das funktioniert bei der ersten Kurve sehr gut, wird jedoch die zweite Kurve überprüft, löscht er auch den Legendeneintrag der Temperatur.
Kann mir dabei jemand helfen?
Vielen Dank!
Gruß
Malte

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagrammlegende bearbeiten
19.06.2015 20:40:32
Beverly
Hi Malte,
kann man an deinem Code alleine nicht erkennen - in meinem nachgebauten Beispiel funktioniert er und es werden die korrekten Einträge gelöscht.
Probleme würde es zwar machen, wenn Datenreihen der Sekundärachse zugewiesen sind - diese werden in der Legende immer erst anschließend an alle der Primärachse zugewiesenen Reihen aufgelistet. Allerdings würde ich das aus deiner Auflistung wiederum so nicht entnehmen.


AW: Diagrammlegende bearbeiten
20.06.2015 11:48:39
Malte
Hallo,
vielen Dank für deine Antwort!
Ich habe das Problem nochmal genau untersucht. Ich lösche nur den Legendeneintrag, d.h. der Seriescount bleibt bestehen. Dabei ist mir aufgefallen, dass der Seriescount NICHT mit dem Legencountenty übereinstimmt.
Ich glaube das macht mir alles kaputt. Ich habe nämlich 18 Datenreihen (6 gewollte Temperatur, 6x GGW und 6x Extremwerte) der Legendcount gibt mir aber nur eine Anzahl von 11 aus.
Irgendwie haut das nicht so hin!
Danke!
Gruß!

Anzeige
AW: Diagrammlegende bearbeiten
20.06.2015 16:55:45
Beverly
Hi Malte,
das ist seltsam, wenn 7 Datenreihen in der Legende nicht angezeigt werden, obwohl 18 vorhanden sein müssten. Lade doch mal deine Mappe hoch.


AW: Diagrammlegende bearbeiten
21.06.2015 18:21:18
Malte
Hallo,
hier ist die Datei
https://www.herber.de/bbs/user/98355.xlsm
Es wurden wieder nicht alle Legendeneinträge durch den Code geschrieben, gefühlt werden die ab und zu einfach übersprungen. z.B. fehlen die Temperaturwerte für T über 100 °C
Danke!
Gruß!
Malte

AW: Diagrammlegende bearbeiten
21.06.2015 18:57:52
Beverly
Hi Malte,
das ist die Mappe vor Codeausführung? Dann fehlen in deiner Legende bereits einige Einträge - deshalb werden mit dem Code die falschen Einträge gelöscht. Lösche die Legende und füge sie erneut ein - dann sollte der Code auch korrekt funktionieren.


Anzeige
AW: Diagrammlegende bearbeiten
21.06.2015 19:59:56
Malte
Hallo,
das ist die Tabelle nach der Code ausführung. So sollte er eigentlich alle Einträge übernommen haben. Er hat aber ein paar Namen überlaufen.
Gibt es eine Möglichkeit zu prüfen, ob eine Legende vorhanden ist? Wenn ja, die komplette Legende löschen und anschließend ein komplett neue Legende einfügen?
Danke!
Gruß!

AW: Diagrammlegende bearbeiten
21.06.2015 20:08:42
Beverly
Hi,
selbstverständlich gibt es diese Möglichkeiten - z.B. so:
Sub Test()
Dim i As Integer
Dim cht As Chart
Set cht = Sheets("Reinstoff").ChartObjects("Diagramm_Reinstoff").Chart
cht.Legend.Delete
cht.HasLegend = True
For i = cht.Legend.LegendEntries.Count To 1 Step -1
If cht.SeriesCollection(i).Name = "Extremwerte" _
Or cht.SeriesCollection(i).Name = "GGW" Then
cht.Legend.LegendEntries(i).Delete
cht.Refresh    '


Anzeige
AW: Diagrammlegende bearbeiten
21.06.2015 20:17:44
Malte
Vielen vielen Dank!
Das werde ich mal testen!
Gruß!
Malte

65 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige