ListBoxAuswahl als Array an Makro übergeben
20.09.2005 15:47:09
R.Schmitt
ich versuche derzeit verzweifelt, die in einer ListBox mit
MultiSelect ausgewählten Elemente als Array an ein Makro zu
übergeben, welches die dort gewählten Elemente dann im Seiten
feld einer PivotTabelle sichtbar macht.
Aber irgendwo habe ich in den folgenden drei Makro einen Knoten
drin, dem ich alleine leider nicht Herr werde - weshalb ich euch
belästige.
Das Problem ist,das scheinbar schon der Array selbst nicht richtig
erstellt wird und deshalb im Seitenfeld auch alles bis auf das erste
Element des Arrays verschwunden ist.
Sub ListBoxinArray()
Dim F1 As Variant
Dim str As String
Dim a As Integer
F1 = [Auswertung!d116:d150]
For a = LBound(F1) To UBound(F1)
str = str & Application.Index(F1, a, 1)
Next a
Call PivotFilter("Heft (HFT)", Array(str))
End Sub
Sub PivotFilter(feld$, Elemente As Variant)
Application.CommandBars("Standard").Controls("Rückgängig").Enabled = False
Dim pi As PivotItem
On Error Resume Next
For Each pi In Sheets("PivotWerte").PivotTables("Tabelle1").PivotFields(feld).PivotItems
pi.Visible = (MyMatch(pi.Name, Elemente) <> 0)
Next
End Sub
Function MyMatch(Was, Worin) As Long
On Error GoTo Fehler
MyMatch = WorksheetFunction.Match(Was, Worin, 0)
Exit Function
Fehler:
MyMatch = 0
End Function
Gerne bin ich auch für eine einfachere als die hier gezeigte Lösung
zu haben.
Herzlichen Dank
R.Schmimtt