Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Datenreihen in Diagrammen ein-/ ausblenden

VBA: Datenreihen in Diagrammen ein-/ ausblenden
23.06.2005 10:50:15
Matthias
Hallo,
in einem Diagramm möchte ich einzelne Datenreihen auf Knopfdruck aus- und wieder einblenden und habe dafür ein Makro unter Excel gechrieben.
Zuerst wird die Anzahl der im Diagramm vorhandenen Datenreihen gezählt und die Namen ermittelt, die in einer Dialogbox dargestellt werden.
Dim DynFeld() As Variant
s = ActiveChart.SeriesCollection.Count
ReDim DynFeld(s)
For i = 1 To s
DynFeld(i) = ActiveChart.SeriesCollection(i).Name
Next i
Die Namen lassen sich anklicken und durch weiteren Knopfdruck auf eine Befehlschaltfläche werden die Spalten aus oder eingeblendet:

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
If ListBox1.ListCount > 0 Then
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
ActiveWorkbook.Worksheets(1).Columns(i + 2).Hidden = True
Else
ActiveWorkbook.Worksheets(1).Columns(i + 2).Hidden = False
End If
Next i
End If
Application.ScreenUpdating = True
End Sub

Was ich jetzt gerne ändern würde:
- das Makro geht davon aus, daß nur ein Worksheet existiert bzw. daß sich das Diagramm auf das erste Worksheet bezieht. Wie kann ich herausfinden, auf welches Worksheet sich die Inhalte eines Diagrammes beziehen, so daß ich dieses Worksheet gezielt ansprechen kann ?
- außerdem wird momentan angenommen, daß die erste dargestellte Datenreihe in Spalte B des Worksheets ist, die zweite Datenreihe in Spalte C usw.
Oft habe ich aber den Fall, daß ich ein Worksheet mit z.B. 9 ausgefüllten Spalten habe, wovon aber z.B. nur Spalte B, D, F und H als Datenreihen im Diagramm enthalten sind. Gebe ich jetzt an, daß Datenreihe 2 ausgeblendet werden soll, blendet das Makro Spalte C aus anstatt Spalte D (die ja die zweite dargestellte ist).
Ich müßte also herausfinden, auf welche Spalte sich eine im Diagramm dargestellte Datenreihe bezieht. Wie mache ich so etwas ?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: Datenreihen in Diagrammen ein-/ ausblenden
23.06.2005 13:03:20
Jan
Hi,
in der Datenquelle des Diagramms unter Reihe steht für jede Datenreihe ein Bezug, den
kannst du verwenden.
mfg Jan
AW: VBA: Datenreihen in Diagrammen ein-/ ausblenden
23.06.2005 13:12:40
Matthias
Wäre eine Möglichkeit.
Wie kann ich unter VBA die "X-Werte" der Datenquelle (z.B. =DISP0001!$A$1:$A$201) auslesen ?
AW: VBA: Datenreihen in Diagrammen ein-/ ausblenden
23.06.2005 13:24:18
Jan
Hi,
das ist nicht eine Möglichkeit, sondern die einzige.
Du musst das halt mit Left, Mid und Right zerpflücken um einen VBA-fähigen Bezug
zu bekommen, beiVBA gut kein Problem, oder?
mfg Jan
Anzeige
AW: VBA: Datenreihen in Diagrammen ein-/ ausblenden
23.06.2005 14:10:29
Matthias
Left, Mid, Right ist ja gut, aber wie erhalte ich denn die X-Werte ? Irgendwie muß ich die doch auslesen können ?
es gibt nur VBA- nein / gut / Profi, es fehlen Zwischenstufen wie VBA-Anfänger
Wenn ich VBA gut könnte, würde ich keine Fragen stellen, sondern sie beantworten ;-)
AW: VBA: Datenreihen in Diagrammen ein-/ ausblenden
24.06.2005 08:39:57
Volker
Tach Matthias,
das mit dem Anfängerlevel war schon öfter mal Thema im OT.
Die allgemeine Meinung war, dass das etwas zu weit führen würde. Schade.
Zu Deinem Problem eine Frage: Sind deine Diagramme irgendwie dynamisch oder wieso weißt Du nicht, von welcher Adresse die X-Werte stammen.
Ich hab mal was rumgespielt:
xwert = ActiveChart.SeriesCollection(1).XValues
Leider ist das nur der 1. Wert und nicht der Range. Alle Versuche mit Range, Address oder sonst was haben nicht gefruchtet.
Ich laß die Frage mal offen, mal sehen ob sich ein Experte findet.
Gruß
Volker
Anzeige
AW: VBA: Datenreihen in Diagrammen ein-/ ausblenden
24.06.2005 09:49:24
Matthias
Hallo,
dynamisch ?
naja, das Diagramm an sich ist immer das gleiche (Achseneinteilung, -beschriftung, Farben, Legende, x-y), aber die Datenreihe stammen aus einem Arbeitsblatt, dessen Name unterschiedlich sein kann. Außerdem stammen die Daten mal aus der Spalte C, mal aus Spalte B oder F oder... und auch die Zeile kann unterschiedlich ausfallen: Manchmal habe ich 201 Meßpunkte, manchmal 801...
Mir würde es reichen, wenn ich feststellen könnte aus welchem Arbeitsblatt der x-Wert stammt und aus welcher Spalte im Arbeitsblatt.
Anzeige
AW: VBA: Datenreihen in Diagrammen ein-/ ausblenden
24.06.2005 14:54:07
Jan
Hi,
so sieht z.B. der Bezug einer Datenreiche aus, da stehen alle Informationen, die du willst, wo also ist das problem?
=Tabelle1!$A$1:$A$3
mfg Jan
AW: VBA: Datenreihen in Diagrammen ein-/ ausblenden
27.06.2005 10:37:52
Matthias
Jan, du Witzbold,
dann verrate mir doch einfach mal, wie ich diesen Bezug auslesen kann, so daß in einer Variable "Tabelle1" erscheint und in einer anderen "A" für die Spalte.
Oder noch besser: wie kann ich die Tabelle1 als aktivieren, wenn ich den Namen vorher nicht weiß, sondern erst aus dem Bezug auslese ?
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Datenreihen in Excel-Diagrammen ein- und ausblenden mit VBA


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen. Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsblattname)" und wähle Einfügen > Modul.

  2. VBA-Code hinzufügen: Kopiere den folgenden Code in das Modul:

    Dim DynFeld() As Variant
    Dim s As Long
    s = ActiveChart.SeriesCollection.Count
    ReDim DynFeld(s)
    For i = 1 To s
       DynFeld(i) = ActiveChart.SeriesCollection(i).Name
    Next i
  3. Datenreihen aus- und einblenden: Füge den folgenden Code für die Schaltfläche hinzu:

    Private Sub CommandButton2_Click()
       Application.ScreenUpdating = False
       If ListBox1.ListCount > 0 Then
           For i = 0 To ListBox1.ListCount - 1
               If ListBox1.Selected(i) Then
                   ActiveWorkbook.Worksheets(1).Columns(i + 2).Hidden = True
               Else
                   ActiveWorkbook.Worksheets(1).Columns(i + 2).Hidden = False
               End If
           Next i
       End If
       Application.ScreenUpdating = True
    End Sub
  4. Diagramm anpassen: Stelle sicher, dass dein Diagramm die gewünschten Datenreihen enthält und die entsprechenden Spalten korrekt referenziert werden.

  5. Datenquelle abrufen: Um die X-Werte aus dem Diagramm zu erhalten, kannst du den folgenden Code verwenden:

    Dim xwert As Variant
    xwert = ActiveChart.SeriesCollection(1).XValues

Häufige Fehler und Lösungen

  • Fehler: "Das Makro funktioniert nicht wie erwartet."

    • Lösung: Überprüfe, ob das Diagramm die richtigen Datenreihen enthält und ob die Spalten entsprechend den Datenreihen angeordnet sind.
  • Fehler: "Die Datenreihe wird nicht korrekt ausgeblendet."

    • Lösung: Stelle sicher, dass die Indizes der Spalten im Makro mit den tatsächlichen Positionen der Datenreihen im Diagramm übereinstimmen.

Alternative Methoden

Eine alternative Methode, um Datenreihen in einem Excel-Diagramm auszublenden, besteht darin, die Diagrammeigenschaften direkt über das Excel-Menü zu bearbeiten. Du kannst die Sichtbarkeit von Datenreihen anpassen, indem du die Eigenschaften des Diagramms öffnest und die gewünschten Datenreihen deaktivierst.


Praktische Beispiele

  • Beispiel 1: Wenn du ein Diagramm mit mehreren Datenreihen hast und eine bestimmte Datenreihe ausblenden möchtest, kannst du das Makro verwenden, um die Sichtbarkeit dynamisch zu steuern.

  • Beispiel 2: Mit dem oben beschriebenen Code kannst du die X-Werte einer Datenreihe auslesen und diese Informationen nutzen, um das Diagramm interaktiv zu steuern.


Tipps für Profis

  • Verwende Named Ranges in Excel, um deine Datenquellen besser zu verwalten. Dies kann die Verwaltung von Diagrammen vereinfachen, insbesondere wenn sich die Daten ändern.

  • Achte darauf, dass du die Excel-Sekundärachse ausblendest, falls du mehrere Diagramme in einer einzigen Ansicht kombinierst, um die Lesbarkeit zu verbessern.

  • Nutze Fehlerbehandlungsroutinen im VBA-Code, um sicherzustellen, dass dein Makro auch bei unerwarteten Daten problemlos funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich alle Datenreihen gleichzeitig ausblenden?
Du kannst eine Schleife im VBA-Code verwenden, um alle Datenreihen mit einem einzigen Befehl auszublenden.

2. Kann ich die Darstellung der Datenreihen in einem Excel-Diagramm anpassen?
Ja, du kannst die Formatierung von Datenreihen über die Formatoptionen im Diagramm oder durch VBA anpassen.

3. Wie finde ich heraus, auf welches Arbeitsblatt sich meine Diagrammdaten beziehen?
Du kannst die SeriesCollection verwenden, um die Quelle der Daten einer bestimmten Datenreihe auszulesen und das entsprechende Arbeitsblatt zu identifizieren.

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