ich habe folgendes Problem:
In einem Diagramm (siehe Beispieldatei) wird über eine Combobox ein eine FullCategoryCollection gefiltert bzw nicht gefilter.
Darüber hinaus sind mehrere Werte (Kontinente) immer in dem Diagramm zu sehen.
Das funktioniert auch wunderbar, bis zum FullCategoryCollection(I) Index-Wert >=20.
Im Direktfenster lasse ich die FullCategoryCollection(I).Name, den Wert der Combobox und I ausgeben. Bei einer Auswahl in der Combobox oberhalb von "Asien, Australien und Ozeanien" funktioniert alles wunderbar. Danach werden als FullCategoryCollection(I).Name die Indexwerte ausgebgeben, die nactürlich nicht dem Wert in der COmbobox entsprechen und daher folglich die entsprechenden FullCategoryCollection(I) immer als .filtered=true gesetzte werden und die Balken nicht in der Grafik erscheinen.
Tausche ich nun einen Wert unterhalb von "Asien, Australien und Ozeanien" mit einem Wert darüber beispielsweise "Irak" mit "Ukraine" Wird Irak angezeigt.
Hier den entsprechende Code und die Beispieldatei.
Option Explicit
Private Sub A13_Land_Change()
Dim I As Integer
Dim str_Land As String
str_Land = A13_Land.Value
ActiveSheet.ChartObjects("Diagramm_A13").Activate
For I = 1 To 27
Debug.Print I, A13_Land.Value, str_Land, ActiveChart.ChartGroups(1).FullCategoryCollection(I). _
_
Name 'Zum Testen: Ab FullCategoryCollection(I).Name bei I >= 20 werden nur noch die Index Werte _
(und dies sogar mit einer Nachkommastelle ausgegeben.
If ActiveChart.ChartGroups(1).FullCategoryCollection(I).Name = A13_Land.Value Then
ActiveChart.ChartGroups(1).FullCategoryCollection(I).IsFiltered = False
Else: ActiveChart.ChartGroups(1).FullCategoryCollection(I).IsFiltered = True
End If
Next
ActiveChart.ChartGroups(1).FullCategoryCollection(1).IsFiltered = False
ActiveChart.ChartGroups(1).FullCategoryCollection(15).IsFiltered = False
ActiveChart.ChartGroups(1).FullCategoryCollection(16).IsFiltered = False
ActiveChart.ChartGroups(1).FullCategoryCollection(18).IsFiltered = False
ActiveChart.ChartGroups(1).FullCategoryCollection(19).IsFiltered = False
Range("B43").Select
End Sub
https://www.herber.de/bbs/user/124039.xlsm
Vielen Dank für Eure Ideen!