Informationen und Beispiele zum Thema CheckBox | |
---|---|
![]() |
CheckBox-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema CommandButton | |
---|---|
![]() |
CommandButton-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema TextBox | |
---|---|
![]() |
TextBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Diagramme nach mehreren Balken filtern
von: Marc
Geschrieben am: 10.09.2019 09:52:18
Hallo zusammen,
in der letzten Woche hat ein sehr lieber User mir einen Code gezeigt, mit dem ich alle Charts eines Tabellenblattes mit einem Filter versehen kann:
Sub test () If Optionbotton1 = True Then For Each chrDia In ActiveSheet.ChartObjects With chrDia.Chart For lngZaehler = .FullSeriesCollection.Count To 1 Step -1 If .FullSeriesCollection(lngZaehler).Name <> "Verkauf" Then .FullSeriesCollection(lngZaehler).IsFiltered = True Else .FullSeriesCollection(lngZaehler).IsFiltered = False End If Next lngZaehler End With Next chrDia End If End Sub
Sub Test () If CheckBox2 = True Then For Each chrDia In ActiveSheet.ChartObjects With chrDia.Chart For lngZaehler = .FullSeriesCollection.Count To 1 Step -1 If .FullSeriesCollection(lngZaehler).Name <> "Verkauf" Then .FullSeriesCollection(lngZaehler).IsFiltered = True Else .FullSeriesCollection(lngZaehler).IsFiltered = False End If Next lngZaehler End With Next chrDia End If If CheckBox3 = True Then For Each chrDia In ActiveSheet.ChartObjects With chrDia.Chart For lngZaehler = .FullSeriesCollection.Count To 1 Step -1 If .FullSeriesCollection(lngZaehler).Name <> "Kunde" Then .FullSeriesCollection(lngZaehler).IsFiltered = True Else .FullSeriesCollection(lngZaehler).IsFiltered = False End If Next lngZaehler End With Next chrDia End If End Sub
Betrifft: Bitte Beispielmappe hochladen - o.w.T.
von: 1712191.html
Geschrieben am: 10.09.2019 10:14:53
Betrifft: AW: Diagramme nach mehreren Balken filtern
von: 1712197.html
Geschrieben am: 10.09.2019 10:28:33
Hallo,
ich habe die Datei nun mal entsprechend hochgeladen.
https://www.herber.de/bbs/user/131942.xlsm
Ich möchte nun mit den Checkboxen mehrere Linien auswählen können... :(
Ich bekomme es seit Samstag nicht hin... :(
Danke für Eure Hilfe!
Marc
Betrifft: Diagramm Datenreihen Filtern
von: 1712209.html
Geschrieben am: 10.09.2019 11:14:08
Hi Marc,
schreibe zuerst die Caption aller aktivierten CheckBoxen in ein Array, laufe dann über alle Datenreihen und prüfe ob der Name der Datenreihe im Array steht - falls ja, dann einblenden, andernfalls ausblenden:
Private Sub CommandButton4_Click() Dim ctrBox As Control Dim lngZaehler As Long Dim chrDia As ChartObject Dim arrBoxen() Dim varAnzeige As Variant Dim intZaehler As Integer ReDim arrBoxen(0) For Each ctrBox In Controls If TypeName(ctrBox) = "CheckBox" Then If ctrBox Then ReDim Preserve arrBoxen(0 To intZaehler) arrBoxen(intZaehler) = ctrBox.Caption intZaehler = intZaehler + 1 End If End If Next ctrBox If arrBoxen(0) <> "" Then For Each chrDia In ActiveSheet.ChartObjects With chrDia.Chart For lngZaehler = .FullSeriesCollection.Count To 1 Step -1 varAnzeige = Application.Match(.FullSeriesCollection(lngZaehler).Name, _ arrBoxen(), 0) If Not IsNumeric(varAnzeige) Then .FullSeriesCollection(lngZaehler).IsFiltered = True Else .FullSeriesCollection(lngZaehler).IsFiltered = False End If Next lngZaehler End With Next chrDia End If End Sub
Betrifft: AW: Diagramm Datenreihen Filtern
von: 1712262.html
Geschrieben am: 10.09.2019 14:03:07
Vielen lieben Dank liebe Karin!!!!
Ich verstehe leider nur maximal die Hälfte, werde mir aber nun mal ein Buch zulegen....
Danke, danke, danke!!!!
LG
Marc
Betrifft: AW: Diagramm Datenreihen Filtern
von: 1712270.html
Geschrieben am: 10.09.2019 14:34:21
Hi Marc,
hier der Code nochmal mit einigen Kommentaren damit du besser verstehst was abläuft:
Private Sub CommandButton4_Click() Dim ctrBox As Control Dim lngZaehler As Long Dim chrDia As ChartObject Dim arrBoxen() Dim varAnzeige As Variant Dim intZaehler As Integer ReDim arrBoxen(0) ' Schleife über alle Steuerelemente des UserForms For Each ctrBox In Controls ' laufendes Steuerelement ist eine CheckBox If TypeName(ctrBox) = "CheckBox" Then ' laufendes Steuerelement ist aktiviert If ctrBox Then ' erweitere das Array um 1 Feld ReDim Preserve arrBoxen(0 To intZaehler) ' in letztes Arrayfeld die Caption der laufenden TextBox arrBoxen(intZaehler) = ctrBox.Caption ' Zähler um 1 erhöhen intZaehler = intZaehler + 1 End If End If Next ctrBox ' erstes Arrayfeld ist belegt, d.h. mindestens 1 CheckBox ist aktiviert If arrBoxen(0) <> "" Then ' Schleife über alle Diagramme For Each chrDia In ActiveSheet.ChartObjects With chrDia.Chart ' Schleife von der letzten bis zur ersten Datenreihe For lngZaehler = .FullSeriesCollection.Count To 1 Step -1 ' VERGLEICH() ob Datenreihenname im Array enthalten varAnzeige = Application.Match(.FullSeriesCollection(lngZaehler).Name, _ arrBoxen(), 0) ' Datenreihenname ist nicht enthalten und VERGLEICH ergibt keinen Zahlenwert If Not IsNumeric(varAnzeige) Then ' Datenreihe ausblenden .FullSeriesCollection(lngZaehler).IsFiltered = True ' Datenreihenname ist enthalen und ergibt einen Zahlenwert bei VERGLEICH Else ' Datenreihe einblenden .FullSeriesCollection(lngZaehler).IsFiltered = False End If Next lngZaehler End With Next chrDia End If End Sub