Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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 Reihen und Rubriken über VBA ausblenden

Diagramm Reihen und Rubriken über VBA ausblenden
11.07.2018 01:08:14
maschbau0407
Hallo zusammen,
ich würde gerne in einem Diagramm über VBA die Reihen und Rubriken aktivieren und deaktivieren, wie dies über Excel über Daten auswählen und den Checkboxen möglich ist.
Welches Objekt ist dies?
Vielen Dank.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm Reihen und Rubriken über VBA ausblenden
11.07.2018 08:29:16
ChrisL
Hi
Ich würde einfach die Zeilen oder Spalten in der Tabelle ein-/ausblenden.
Mag sein, dass man (ab Excel 2013?) die Datenreihen auch per VBA aktiveren/deaktivieren kann. Aber a) ist es komplizierter, b) ist die Datei nicht mit älteren Versionen kompatibel und c) kenne ich den Syntax nicht (du müsstest die Frage also wieder auf offen stellen).
cu
Chris
Im Diagramm direkt nicht möglich - o.w.T.
11.07.2018 09:48:01
Beverly


AW: Im Diagramm direkt nicht möglich - o.w.T.
11.07.2018 10:43:01
ChrisL
Hi Beverly
Sag niemals nie :)
Vielleicht mache ich ein durcheinander, aber ich glaube da gäbe es theoretisch schon Möglichkeiten.
https://stackoverflow.com/questions/29703066/turning-the-visibility-of-chart-series-on-off-using-excel-macros-vba
ActiveChart.FullSeriesCollection(2).IsFiltered = True
oder

Private Sub Test()
Dim cht As Chart
Dim ser As Series
'Retrieve our chart and seriescollection objects'
Set cht = Worksheets("Sheet1").ChartObjects("Chart 1").Chart
Set ser = cht.SeriesCollection(1)
'Set the first series line to be hidden'
With ser.Format.Line
If .Visible = msoTrue Then
.Visible = msoFalse
ser.Name = vbNullString
Else
.Visible = msoTrue
ser.Name = "Series 1"
End If
End With
End Sub
cu
Chris
Anzeige
Gut zu wissen...
11.07.2018 11:02:48
Beverly
Hi Chris,
...dass es über die Eigenschaft IsFiltert gesteuert werden kann, denn - entgegen dem Hinweis in dem Beitrag aus deinem Link - zeichnet der Makrorekorder das Ausblenden der Datenreihen bei mir in Excel2016 nicht auf (ist ja bekanntlich der erste Schritt, wenn man einen Befehl nicht kennt).
Dein 2. Code funktioniert nur wenn du ein Diagramm mit Linien vorliegen hast, nicht jedoch bei flächenhaften Datenreihen - da muss man mit Fill oder Interior.Color arbeiten.


passt...
11.07.2018 11:18:07
ChrisL
Hi Beverly
Alles klar, passt. Ich konnte mit XL 2016 übrigens ebenfalls nicht aufzeichnen.
cu
Chris
Anzeige
AW: passt...
11.07.2018 23:11:38
maschbau0407
Hallo,
danke für die vielen Hinweise.
Die Zeilen ausblenden ist interessant, in meinem Fall aber leider nicht anwendbar, da ich einzelne Zellen ausblenden müsste.
Die Option isFiltered ist super um die Datenreihen auszublenden.
Gibt es diese auch für die x-Achse bzw. wie spreche ich dies für die Rubrikenachse an.
Vielen DAnk.
AW: passt...
12.07.2018 08:58:44
ChrisL
Hi
Könnte ChartCategory sein...
https://msdn.microsoft.com/de-de/vba/excel-vba/articles/chartcategory-isfiltered-property-excel
cu
Chris
Wenn ich das richtig sehe...
12.07.2018 11:38:23
Beverly
Hi,
...bezieht sich ChartCategory auf Datenreihen: "Gibt TRUE zurück, wenn der Benutzer aus einer Reihe filtert."
Man kann damit zwar einzelne Werte ausblenden
Dim chr As Chart
Dim chrgrp As ChartGroup
Dim cat As CategoryCollection
Dim lngZaehler As Long
Set chr = ActiveSheet.ChartObjects(1).Chart
For Each chrgrp In chr.ChartGroups
Set cat = chrgrp.CategoryCollection()
For lngZaehler = cat.Count To 1 Step -1
' die ersten 2 Werte ausblenden
If lngZaehler 
aber man bekommt sie nicht wieder eingeblendet, da sie in der CategoryCollection nicht mehr existieren.
Vielleicht hat ja jemand noch eine Idee, deshalb lasse ich den Thread offen.
Was mir als Alternativ-Lösung noch einfällt wäre höchstens, die darzustellenden (sozusagen "gefilterten") Daten in ein Array einzulesen und diese dann den Datenreihen zuzuweisen oder die Daten in einen anderen Zellbereich zu kopieren und das Diagramm dann darauf aufzubauen. Noch einfacher wäre es natürlich, für das Diagramm generell einen anderen Zellbereich als Wertebasis zu verwenden und dann die Zeilen/Spalten auszublenden welche nicht dargestellt werden sollen.
Übrigens: auch in Excel2013 zeichnet der Makrorekorder die Aktion beim Ein-/Ausblenden nicht auf - weder für die Datenpunkte noch die Rubriken. Ich verstehe also nicht, wie in dem ersten Link geschrieben werden konnte, dass der Makrorekorder das aufzeichnet...


Anzeige
FullCategoryCollection
12.07.2018 17:07:18
ChrisL
Hi Karin
Mit FullCategoryCollection gehts...
https://www.mrexcel.com/forum/excel-questions/1017243-vba-manipulate-chart-filter.html
ActiveChart.ChartGroups(1).FullCategoryCollection(1).IsFiltered = False
cu
Chris
PS: Die Aussage mit dem Makrorekorder kam vermutlich ungetestet aus einem Reflex heraus. ;)
AW: FullCategoryCollection
12.07.2018 18:02:57
Beverly
Hi Chris,
ja, das ist die Lösung - klingt im Nachhinein auch logisch ;-)


24 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige