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

Diagramme: Chartgroups in Vordergrund verschieben

Diagramme: Chartgroups in Vordergrund verschieben
Uli
Hallo Experten,
ich habe in eine Vielzahl von Diagrammen erstellt. Jedes Diagramm ist gleich aufgebaut. In jedem ist ein Fläschendiagramm, Liniendiagramm und ein Punktdiagramm enthalten.
Da zum Teil recht viele Punkte erscheinen und dann die Linien komplett überdecken, habe ich vor, die Punkte unter die Linien zusetzen, also die "Plotorder" der "Chartgroups" zu verändern. Leider ist mir nur das Ändern der SeriesCollection einer Chartgroup geglückt und nicht das Verschieben einer ganzen Chartgroup. Heißt:
Derzeitig:
ganz unten Fläschen-, dann Linien-, dann Punktediagramm
Ziel:
ganz unten Flächen-, dann Punkte-, dann Liniendiagramm
Da es recht viele Diagramm sind würde ich das gerne mit einem Makro machen. Ist das möglich?
Würde mich über euere Hilfe sehr freuen
Gruß
Uli

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Diagramme: Chartgroups in Vordergrund verschieben
16.08.2009 11:52:50
fcs
Hallo Uli,
das war jetzt eine Nuss der härteren Art.
Die PlotOrder läßt sich unter VBA wohl tatsächlich nur innerhalb einer Diagramm-Gruppe neu festlegen. Die Gruppen selber haben wohl keine PlotOrder-Eigenschaft, die angepasst werden kann.
Als Notlösung hab ich dann die Anpassung der Formeln der Datenreihen gefunden.
Gruß
Franz
'Erstellt mit Excel 2007 im Kompatibilitäts-Modus
Option Explicit
Private intReihenfolge As Integer, arrSeries()
Sub ChartGroupOrder()
Dim Diag As Chart, intI As Integer, objReihe As Series
For Each Diag In ActiveWorkbook.Charts
ReDim arrSeries(1 To Diag.SeriesCollection.Count, 1 To 2)
intReihenfolge = 0 'Zähler für Reihenfolge zurücksetzen
'Die folgenden 4 Zeilen entsprechend der gewünschten Reihenfolge der Gruppen _
anordnen
Call ReadGroupSeries(objChartGroups:=Diag.LineGroups) 'Linien-Reihen
Call ReadGroupSeries(objChartGroups:=Diag.XYGroups) 'XY-Punkt-Reihen
Call ReadGroupSeries(objChartGroups:=Diag.AreaGroups) 'Flächen-Reihen
Call ReadGroupSeries(objChartGroups:=Diag.ColumnGroups) 'Säulen-Reihen
'Formeln der Datenreihen entsprechend der neuen Reihenfolge anpassen
For intI = 1 To intReihenfolge
Set objReihe = Diag.SeriesCollection(arrSeries(intI, 1))
objReihe.Formula = Left(objReihe.Formula, InStrRev(objReihe.Formula, ",")) _
& arrSeries(intI, 2) & ")"
Next
Next
End Sub
Sub ReadGroupSeries(objChartGroups As ChartGroups)
'Namen der Datenreihen der Diagrammgruppe auslesen _
und Name und Reihenfolge in Array schreiben
Dim objReihe As Series, objChartGroup As ChartGroup
For Each objChartGroup In objChartGroups
For Each objReihe In objChartGroup.SeriesCollection
intReihenfolge = intReihenfolge + 1
arrSeries(intReihenfolge, 1) = objReihe.Name
arrSeries(intReihenfolge, 2) = intReihenfolge
Next
Next
End Sub

Anzeige
AW: Diagramme: Chartgroups in Vordergrund verschieben
16.08.2009 15:17:29
Uli
Hallo Franz,
vielen Dank für die viele Mühe, die Datenreihen lassen sich mit dem Makro gut vertauschen, leider bleibt das Punktdiagramm dann trotzdem noch im Vordergrund. Keine Ahnung warum....
Gruß
Uli
AW: Diagramme: Chartgroups in Vordergrund verschieben
17.08.2009 06:28:22
fcs
Hallo Uli,
damit die Punkte der Reihen mit dem Diagrammtyp "Punkt XY" hinter den Datenpunkten der Reihen mit dem Typ "Linie" dargestellt werden, müssen sie in der Plot-Reihenfolge an erster Stelle stehen.
Also im Code:
    'Die folgenden 4 Zeilen entsprechend der gewünschten Reihenfolge der Gruppen _
anordnen
Call ReadGroupSeries(objChartGroups:=Diag.XYGroups) 'XY-Punkt-Reihen
Call ReadGroupSeries(objChartGroups:=Diag.LineGroups) 'Linien-Reihen
Call ReadGroupSeries(objChartGroups:=Diag.AreaGroups) 'Flächen-Reihen
Call ReadGroupSeries(objChartGroups:=Diag.ColumnGroups) 'Säulen-Reihen

Oder sind deine Reihen mit Punkt-Darstellung auch vom Typ Linie, aber so formatiert, dass sie ohne Linie dargestellt werden? In diesem Fall müsste dann die Reihenfolge innerhalb der Gruppe umgestellt werden.
Gruß
Franz
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige