Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1556to1560
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pivot-Zeilenbeschriftung über Tabelle selektieren

Pivot-Zeilenbeschriftung über Tabelle selektieren
14.05.2017 16:12:23
Tom
Hallo Leute
Ich habe versucht diesen Code von fcs hier aus dem Forum für mich anzupassen.
https://www.herber.de/forum/archiv/1256to1260/1258791_PivotZeilenbeschriftung_ueber_Tabelle_selektieren.html
Dieser Code bewirkt, dass Werte aus einer Tabelle aus dem Filter entfernt werden.
Ich möchte aber, dass es den andersrum funktioniert. Werte aus einer Tabelle als Filterauswahl aktivieren
Sub Pivot_categories_list()
Dim wksPivot As Worksheet
Dim pvTab As PivotTable, pvField As PivotField
Dim wksActive As Worksheet
Dim ZeileActive As Long, catActive As Variant
On Error GoTo Fehler
Set wksPivot = ActiveSheet
Set wksActive = Worksheets("Benchmark")
Set pvTab = wksPivot.PivotTables(1)
Set pvField = pvTab.PivotFields("KTG1")
Application.ScreenUpdating = False
pvField.ClearAllFilters
With wksActive
'Artikelnummern in Spalte A des Tabellenblatts "Nicht_in_Pivot" in Pivot ausblenden
For ZeileActive = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
catActive = .Cells(ZeileActive, 1).Text
pvField.PivotItems(catActive).Visible = True
NextItem:
Next
End With
Application.ScreenUpdating = True
Fehler:
With Err
Select Case .Number
Case 0 'Alles ok
Case 1004
Resume NextItem
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
Application.ScreenUpdating = True
End Sub

Jedoch wird durch clearAllFilters alles ausgewählt und wenn ich diese Zeile lösche, bleiben mir die Werte die vorher ausgewählt worden sind vorhanden.
Was wäre der Befehl, dass die Filterauswahl zuerst geleert wird? Und wie kann ich im Code die Spalte (und vielleicht auch die Zeile) angeben, von wo er die Werte herholt (hier wird in der Spalte A durchsucht)?
Für ein paar Tipps wäre ich euch dankbar :)
Gruss
Tom

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot-Zeilenbeschriftung über Tabelle selektieren
17.05.2017 06:25:11
fcs
Hallo Tom,
hier muss man anders prüfen.
Für die PivotItems muss geprüft werden, ob sie in der Auswahlliste vorhanden sind. Wenn Nein, dann ausblenden.
Ich hab das Makro mal umgestrickt, so dass unterschiedliche Felder und Listen einfach abgearbeitet werden könne ohne viel Code wiederholen zu müssen.
Gruß
Franz
Sub pvTAB_KTG1_Filtern()
Call Pivot_Feld_Filter(pvTab:=ActiveSheet.PivotTables(1), strField:="KTG1", _
arrItems:=Filterwerte(Worksheets("Benchmark"), 1))
End Sub
Function Filterwerte(wks As Worksheet, Spalte As Long, Optional Zeile_1 As Long = 1)
'Filter-Werte in Array einlesen
Dim arrWerte() As Variant
Dim Zeile As Long, Zeile_L As Long
With wks
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row
ReDim arrWerte(1 To Zeile_L)
For Zeile = 1 To Zeile_L
arrWerte(Zeile) = .Cells(Zeile, 1).Text
Next
End With
Filterwerte = arrWerte
End Function
Sub Pivot_Feld_Filter(pvTab As PivotTable, strField As String, arrItems)
Dim pvField As PivotField, pvItem As PivotItem
Dim Zeile As Long, Zeile_L As Long, catActive As Variant
Dim bolSichtbar As Boolean
On Error GoTo Fehler
Set pvField = pvTab.PivotFields("KTG1")
Application.ScreenUpdating = False
'Artikelnummern in Spalte A des Tabellenblatts "Nicht_in_Pivot" in Pivot ausblenden
pvTab.RefreshTable
pvField.ClearAllFilters
For Each pvItem In pvField.PivotItems
bolSichtbar = False
catActive = pvItem.Name
For Zeile = LBound(arrItems) To UBound(arrItems)
If catActive = arrItems(Zeile) Then
bolSichtbar = True
Exit For
End If
NextItem:
Next
If bolSichtbar = False Then pvField.PivotItems(catActive).Visible = False
Next
Application.ScreenUpdating = True
Fehler:
With Err
Select Case .Number
Case 0 'Alles ok
Case 1004
Resume NextItem
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
Application.ScreenUpdating = True
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige