Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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.
Anzeige

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
Anzeige
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.


Anzeige
passt...
11.07.2018 11:18:07
ChrisL
Hi Beverly
Alles klar, passt. Ich konnte mit XL 2016 übrigens ebenfalls nicht aufzeichnen.
cu
Chris
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.
Anzeige
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. ;)
Anzeige
AW: FullCategoryCollection
12.07.2018 18:02:57
Beverly
Hi Chris,
ja, das ist die Lösung - klingt im Nachhinein auch logisch ;-)


;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Diagramm Reihen und Rubriken über VBA ausblenden


Schritt-für-Schritt-Anleitung

Um Reihen und Rubriken in einem Excel-Diagramm über VBA auszublenden, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf VBAProject (DeinWorkbookName), wähle Einfügen und dann Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub DatenreiheAusblenden()
       Dim cht As Chart
       Set cht = Worksheets("Sheet1").ChartObjects("Chart 1").Chart
    
       ' Erste Datenreihe ausblenden
       cht.SeriesCollection(1).IsFiltered = True
    End Sub
  4. Führe den Code aus: Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.

  5. Überprüfe dein Diagramm: Die erste Datenreihe sollte nun im Diagramm ausgeblendet sein.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Lösung: Stelle sicher, dass der Name des Diagramms und das Arbeitsblatt korrekt sind. Überprüfe die Schreibweise und dass das Diagramm tatsächlich auf dem angegebenen Arbeitsblatt existiert.

  • Fehler: Makro funktioniert nicht
    Lösung: Stelle sicher, dass du die richtige Excel-Version verwendest. Einige Funktionen sind möglicherweise nur in Excel 2013 oder neuer verfügbar.


Alternative Methoden

Eine alternative Methode zum Ausblenden von Datenreihen in einem Diagramm ist die Verwendung von Excel-Checkboxen:

  1. Füge Checkboxen ein: Gehe zu Entwicklertools > Einfügen und wähle Checkbox.
  2. Verknüpfe die Checkbox mit dem Diagramm: Schreibe ein kleines VBA-Skript, das die Sichtbarkeit der Datenreihe basierend auf dem Status der Checkbox ändert.

Hier ist ein Beispielskode:

Private Sub CheckBox1_Click()
    Dim cht As Chart
    Set cht = Worksheets("Sheet1").ChartObjects("Chart 1").Chart

    If CheckBox1.Value = True Then
        cht.SeriesCollection(1).IsFiltered = False
    Else
        cht.SeriesCollection(1).IsFiltered = True
    End If
End Sub

Praktische Beispiele

Beispiel 1: Ausblenden von Datenpunkten
Um spezifische Datenpunkte in einer Datenreihe auszublenden, kannst du folgendes Skript verwenden:

Sub PunkteAusblenden()
    Dim ser As Series
    Set ser = ActiveChart.SeriesCollection(1)

    ser.Points(1).Format.Fill.Visible = msoFalse ' Erster Punkt ausblenden
End Sub

Beispiel 2: Ausblenden der Rubrikachse
Um die Rubrikachse auszublenden, verwende:

Sub RubrikAusblenden()
    Dim cht As Chart
    Set cht = ActiveSheet.ChartObjects(1).Chart

    cht.Axes(xlCategory).Format.Line.Visible = msoFalse ' Rubrikachse ausblenden
End Sub

Tipps für Profis

  • Vermeide das direkte Ausblenden von Datenreihen, wenn du die Excel-Druckansicht ausschalten möchtest. Stattdessen kannst du die Sichtbarkeit der Datenreihe über das VBA-Skript steuern.
  • Nutze FullSeriesCollection, um Zugriff auf alle Datenreihen zu erhalten, auch wenn sie gefiltert sind. Dies kann dir helfen, besser mit großen Datensätzen zu arbeiten.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Datenreihen gleichzeitig ausblenden?
Du kannst eine Schleife verwenden, um mehrere Datenreihen auszublenden. Zum Beispiel:

For i = 1 To ActiveChart.SeriesCollection.Count
    ActiveChart.SeriesCollection(i).IsFiltered = True
Next i

2. Funktioniert das auch in älteren Excel-Versionen?
Einige VBA-Funktionen sind möglicherweise nicht in älteren Versionen verfügbar. Überprüfe die Dokumentation von Microsoft, um die Kompatibilität zu gewährleisten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige