Array an autofilter. Warum werden leere mit angez.
25.08.2017 13:21:22
Michl
Ich befülle mir über Buttons einen Array, welcher Statusfilter gesetzt ist.
(ActiveSheet.shapes(Application.Caller).Fill.ForeColor.SchemeColor = 2)
Also Button mit Farbverlauf und oben ist rot. Bei nicht ausgewählten grün.
Jetzt heißen die Buttons genau wie die Werte, die ich beim Autofilter setzen kann, also "erledigt", "in Arbeit" usw... mit einer Ausnahme: die leeren.
Der Button heißt leer. Weil er ja einen Namen braucht...
Im Array ist dann demnach der Reihe nach alle Buttons mit rot ("in Arbeit" auf der 0, "erledigt" auf der 1,...)
Wenn der "leer" mit rot ist, dann passt es auch vom Filter her, weil bei der Übergabe
.AutoFilter Field:=C.Column, Criteria1:=my_arr, Operator:=xlFilterValues
komischerweise immer auch leer mit angezeigt wird.
Ich weiß nicht warum... (wenn ich bspw. nur einen Wert habe, dann wird mit
i=1
ReDim my_arr(i)
my_arr(0) = Right(shapes.Name, Len(shapes.Name) - 3)
ja auch nur ein Array Feld erzeugt und befüllt. Es kann demnach kein 2. Feld da sein, wo dann "" ist oder übersehe ich jetzt etwas?)
Jedenfalls - wenn ich jetzt aber nur erledigt habe, dann muss ich wohl die leeren noch rausnehmen nach meiner Arrayübergabe.
Ich bräuchte also entweder eine Möglichkeit gleich am Array noch einzufügen, ob leere gezeigt werden sollen oder nicht.
Oder in der Nachbereitung die Möglichkeit, die leeren noch abzuwählen. Also wohl im schlimmsten Fall den Array vom Autofilter auslesen und dann ohne den part leere wieder zu übergeben.
So ein Auslesen des Autofilterarrays wäre eh mal nicht schlecht. Geht sowas, oder läßt Excel einen da wieder mal gar nicht ran kommen?
Danke für die Hilfe.
Excelversionen eigentlich ab 2013 ff.