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 ?