Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1696to1700
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

Diagramm SeriesCollection via VBA aktualisieren

Diagramm SeriesCollection via VBA aktualisieren
18.06.2019 16:32:50
mensi
Hallo alle Zusammen,
ich hoffe Ihr könnt mir hier weiter helfen?!
ich verzweifel so langsam und find auch irgendwie keine Lösung.. :(
In einem bestehendem Diagramm mit zwei Mittelwertreihen sollen weitere Messerwerte aus x belibigen Arbeitsblättern dargestellt werden.
Soweit funktioniert das auch, aber nach dem 4 oder 5 hinzugefügtem Arbeitsblatt werden dann die Datenreihen im Diagramm nicht mehr angezeigt, in der Legende aber schon
Das Funktioniert irgendwie nur, wenn ich dann manuell das Chart in der Menüleiste über Diagrammtools/Entwurf/Daten auswählen anglicke.
Dann sind alle Dateinreihen in der Graphik sichtbar, oder Excel geht einfach zu und stürzt ohne Warung ab.
Das ist so mein Code und hab da schon etliches mit dem ActiveChart ausprobiert :(
Dim iW As Integer
Dim iR As Integer
Dim dataX As Range
Dim i As Integer
Dim dataN As String
Worksheets("Zusammenfassung").ChartObjects("Diagramm 14").Activate
For iW = Worksheets("Start_Mittelw").Index + 1 To Worksheets("Ende_Mittelw").Index - 1
'die Berechnung und das Kopieren in allen Arbeitsblättern zwischen Start und Ende
With Worksheets(iW) 'in den Arbeitsblättern dann folgende Aktion ausführen
iR = .Cells(Rows.Count, 7).End(xlUp).Row 'definiert die Länge der Range je Arbeitsblatt zum kopieren
Set dataX = .Range("D2:D" & iR) 'Spalte "R" für den Motorstrom
dataN = Worksheets(iW).Name 'Name des Ausgewählten Tabellenblatts (wird nachher im chart verwendet)
i = ActiveChart.SeriesCollection.Count + 1 'zählt die Serien im Diagramm
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i).Name = dataN
ActiveChart.SeriesCollection(i).AxisGroup = 1
ActiveChart.SeriesCollection(i).ChartType = xlLine
ActiveChart.SeriesCollection(i).Values = dataX
ActiveChart.PlotArea.Select
ActiveChart.Refresh
End With
strString = ""
Set objObjekt = Nothing
Next iW
ActiveCell.Select
End Sub
über Hilfe wäre ich sehr dankbar

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

Betreff
Datum
Anwender
Anzeige
AW: Diagramm SeriesCollection via VBA aktualisieren
18.06.2019 16:43:32
Beverly
Hi,
versuche es mal so:

Dim iW As Integer
Dim iR As Long
Dim dataX As Range
Dim dataN As String
Dim chrDia As Chart
Set chrDia = Worksheets("Zusammenfassung").ChartObjects("Diagramm 14").Chart
For iW = Worksheets("Start_Mittelw").Index + 1 To Worksheets("Ende_Mittelw").Index - 1
'die Berechnung und das Kopieren in allen Arbeitsblättern zwischen Start und Ende
With Worksheets(iW) 'in den Arbeitsblättern dann folgende Aktion ausführen
iR = .Cells(Rows.Count, 7).End(xlUp).Row 'definiert die Länge der Range je Arbeitsblatt  _
zum kopieren
Set dataX = .Range("D2:D" & iR) 'Spalte "R" für den Motorstrom
dataN = .Name 'Name des Ausgewählten Tabellenblatts (wird nachher im chart verwendet)
With chrDia.SeriesCollection.NewSeries
.Name = dataN
.AxisGroup = 1
.ChartType = xlLine
.Values = dataX
End With
End With
Next iW


Anzeige
AW: Diagramm SeriesCollection via VBA aktualisieren
19.06.2019 07:39:36
mensi
Hallo Karin,
vielen Lieben Dank für deine Antwort. Und du kennst ja die Antworten aus den ganzen Internet-Foren :).
Es macht was es soll, hat aber leider nicht geklappt. Auch hier ist nach dem 5 oder 6 hinzufügen einer neuen Serie (getriggert vom CSV Import) das problem das die Lines nicht sichtbar sind.
Irgendwann stürzt auch die Excel einfach ab und startet neu.
Kann es an dem Misch liegen, das ich das Diagramm ohne VBA erstellt und zwei Datenreihen inkl. Y-Achse via Namensmanager vergebe habe? Ich ja dann sozusagen einfach Lines via VBA hinzufüge?
Ich muss die gleiche Prozedur wie bisher beschrieben durchführen, Diagramm anklicken und Daten auswählen, schwupp sind die Reihen sichtbar.
Bitte um Hilfe....
Ich hab mich auch schon auf deiner Seite nach interesannten Lösungen umgesehen. schon richtig krass gute Sachen :)....
Anzeige
AW: Diagramm SeriesCollection via VBA aktualisieren
19.06.2019 09:00:54
Beverly
Hi,
ändere mal deine Formeln in Spalte V und W im Tabellenblatt "Zusammenfassung" wie folgt:
=WENN(ISTFEHL(MITTELWERT(Start_Mittelw:Ende_Mittelw!D2));#NV; MITTELWERT(Start_Mittelw:Ende_Mittelw!D2))
und
=WENN(ISTFEHL(MITTELWERT(Start_Mittelw:Ende_Mittelw!E2));#NV; MITTELWERT(Start_Mittelw:Ende_Mittelw!E2))
Dann sollte es funktionieren.


AW: Diagramm SeriesCollection via VBA aktualisieren
19.06.2019 09:41:46
mensi
Hallo Karin,
hab ich geändert, aber das Problem besteht weiterhin..
Ich versuch mal in dem Makro, das Chart generell zu löschen und dann neu zu initialisieren..
dann könnte ich mir auch das Modul sparen..
Sub Chart3löschen()
Dim cht As Chart
Set cht = Worksheets("Zusammenfassung").ChartObjects(3).Chart
With cht
For i = .SeriesCollection.Count To 3 Step -1
If i  2 Then
.SeriesCollection(i).Delete
End If
Next i
End With
End Sub

Anzeige
AW: Diagramm SeriesCollection via VBA aktualisieren
19.06.2019 12:07:13
Beverly
Hi,
hat es einen speziellen Grund, weshalb du für die 1. Datenreihe den Diagrammtyp "gestapelte" Flächen nimmst? Versuche es mal, wenn du nur Fläche verwendest.


AW: Diagramm SeriesCollection via VBA aktualisieren
21.06.2019 13:40:36
mensi
Hi Karin,
also ich habs dann nach mehreren Abstürzen rausgefunden.
Du bist auch drauf gestossen.
Anscheinend mag Excel es nicht 3 unterschiedliche Typen in einem Diagramm zu haben.
Auf deine Frage warum 3? Es sollten die Mittelwerte der Dateien anders dagestellt werden als die tatsächlichen importierten, damit man auch nach 30 importierten Daten noch was erkennen kann.
ich habe es nun so gelöst wie in einer deiner Supermappen.. einfach zwei Diagramme übereinander.
Das hat sogar noch den Vorteil das ich ein Mittelwert Diagramm aus dem Namensmanager und das andere nur die VBA Lines nutze.
keine Abstürze mehr und alles funktioniert jetzt über diesen Weg.
Liebe Karin,
vielen vielen Dank und schönes Wochenende..
Gruss
Christian
Anzeige
AW: Diagramm SeriesCollection via VBA aktualisieren
21.06.2019 14:29:49
Beverly
Hi Christian,
meine Frage war nicht weshalb 3 unterschiedliche Diagrammtypen - das geht in Ordnung und Excel kommt damit auch normalerweise problemlos klar. ABER: für die 1. Datenreihe verwendest du den Diagrammtyp gestapelte Flächen, der dafür gedacht ist, mehrere Datenreihen als Fläche darzustellen, die aufeinander gestapelt sind - du hast jedoch nur eine einzige Datenreihe, die als Fläche dargestellt werden soll und benötigst deshalb den Typ gestaplte Flächen nicht sondern den einfachen Typ Fläche (ganz links bei den Flächendiagrammen) - möglicherweise stößt sich Excel daran und "sucht" irgendwie nach den anderen Datenreihen für diesen Diagrammtyp, was dazu führt, dass das Diagramm nicht korrekt aufgebaut wird oder zum Absturz führt.
Ich habe in deiner Mappe jetzt mal die beiden Tabellen mit den Daten mehrmals kopiert, sodass insgesamt 17 Datentabellen vorliegen. Außerdem habe ich in jeder Tabelle 1 beliebigen Wert in Spalte D von Hand verändert, damit man auch erkennen kann, dass es sich um verschiedene Datenreihen handelt. Und vor allem habe ich den Diagrammtyp der ersten Datenreihe von gestapelte Fläche in Fläche geändert - alle Datenreihen werden korrekt im Diagramm dargestellt und keinerlei Abstürze, trotz mehrfachem Durchlauf.
Noch eine Empfehlung: Das Löschen vorhandener Datenreihen würde ich in den Code für das Erstellen mit einbinden, denn wenn jemand mal vergisst, vorhandene Datenreihen vorher zu löschen, werden einige doppelt angezeigt
Dim iW As Integer
Dim iR As Long
Dim dataX As Range
Dim dataN As String
Dim chrDia As Chart
Set chrDia = Worksheets("Zusammenfassung").ChartObjects("Diagramm 14").Chart
Application.ScreenUpdating = False
If chrDia.SeriesCollection.Count 



Anzeige

55 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige