Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1248to1252
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 nur bestimmte selektieren

Pivot nur bestimmte selektieren
lutz
Hallo Excel-Profis,
ich komme mal wieder ohne Eure Hilfe nicht weiter:
Ich möchte nur ein paar Werte aus einer Liste mit Pivot selektieren, die stehen in den Zellen A4:A10 in der Tabelle "Eingabe".
Alle anderen Werte sollen ausgeblendet werden bzw. nicht selektiert.
Ich habe das mal mit Aufzeichnung versucht aber dann bekommt man alle Werte und nicht das man alle Einträge nicht mehr selektiert.
Mein Code (mit nur der Zelle A5 als Beispiel:
Sub test1()
Dim XXTagesdat As String
XXTagesdat = Sheets("Eingabe").Range("A5")
With ActiveSheet.PivotTables("PivotTable1").PivotFields("WL.Datum")
.PivotItems("20.03.2012").Visible = False
.PivotItems("21.03.2012").Visible = False
.PivotItems("22.03.2012").Visible = False
.PivotItems("23.03.2012").Visible = False
.PivotItems("26.03.2012").Visible = False
.PivotItems("29.03.2012").Visible = False
.PivotItems("30.03.2012").Visible = False
.PivotItems("02.04.2012").Visible = False
.PivotItems("09.04.2012").Visible = False
.PivotItems("08.11.2010").Visible = False
.PivotItems("22.11.2010").Visible = False
.PivotItems("04.07.2011").Visible = False
.PivotItems("25.07.2011").Visible = False
.PivotItems("17.10.2011").Visible = False
.PivotItems("05.12.2011").Visible = False
.PivotItems("12.12.2011").Visible = False
.PivotItems("19.12.2011").Visible = False
.PivotItems("02.01.2012").Visible = False
.PivotItems("09.01.2012").Visible = False
.PivotItems("16.01.2012").Visible = False
.PivotItems("23.01.2012").Visible = False
.PivotItems("25.01.2012").Visible = False
.PivotItems("30.01.2012").Visible = False
.PivotItems("06.02.2012").Visible = False
.PivotItems("08.02.2012").Visible = False
.PivotItems("10.02.2012").Visible = False
.PivotItems("13.02.2012").Visible = False
.PivotItems("15.02.2012").Visible = False
.PivotItems("19.02.2012").Visible = False
.PivotItems("20.02.2012").Visible = False
.PivotItems("20.02.2012").Visible = False
'.PivotItems("21.02.2012").Visible = False
.PivotItems("22.02.2012").Visible = False
.PivotItems("23.02.2012").Visible = False
.PivotItems("24.02.2012").Visible = False
.PivotItems("27.02.2012").Visible = False
.PivotItems("29.02.2012").Visible = False
.PivotItems("01.03.2012").Visible = False
.PivotItems("02.03.2012").Visible = False
.PivotItems("05.03.2012").Visible = False
.PivotItems("06.03.2012").Visible = False
.PivotItems("09.03.2012").Visible = False
.PivotItems("12.03.2012").Visible = False
.PivotItems("13.03.2012").Visible = False
.PivotItems("14.03.2012").Visible = False
.PivotItems("16.03.2012").Visible = False
.PivotItems("19.03.2012").Visible = False
.PivotItems("08.11.2010").Visible = False
.PivotItems("22.11.2010").Visible = False
.PivotItems("20.03.2012").Visible = False
.PivotItems("21.03.2012").Visible = False
.PivotItems("22.03.2012").Visible = False
.PivotItems("23.03.2012").Visible = False
.PivotItems("26.03.2012").Visible = False
.PivotItems("29.03.2012").Visible = False
.PivotItems("30.03.2012").Visible = False
.PivotItems("02.04.2012").Visible = False
.PivotItems("09.04.2012").Visible = False
.PivotItems(XXTagesdat).Visible = True
End With
End Sub

Der Code sollte erst alle Einträge auf Visible = false setzen und dann nur die Einträge die dann in die 5 variablen geschrieben werden auf = true
Geht das?
Vielen Dank für Eure Hilfe
Viele Grüße Lutz

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Pivot nur bestimmte selektieren
23.02.2012 14:21:56
fcs
Hallo Lutz,
man kann in einem Pivottabellenbericht nicht die Visible-Eigenschaft für alle Items eines Feldes auf False setzen. Es muss mindestens ein Item sichtbar bleiben.
Man muss also erst alle Items einblenden und dann die nicht gewünschten ausblenden.
Bei Datumswerten muss man dann noch beachten, dass VBA intern mit dem US-Format arbeitet.
Gruß
Franz
Sub PivotFilterDatumswerteSetzen()
Dim rngTagesdat As Range, rngZelle As Range
Dim pvTab As PivotTable, pvField As PivotField, pvItem As PivotItem
Dim boolAusblenden
Set rngTagesdat = Sheets("Eingabe").Range("A5:A10") 'Bereich mit Filterwerten
'Pivottabelle Objektvariable zuweisen
Set pvTab = ActiveSheet.PivotTables(1)
'Nicht mehr benutzte Pivot-Items in Filter-Auswahlisten entfernen (Option)
pvTab.PivotCache.MissingItemsLimit = xlMissingItemsNone
'Pivottabelle aktualisieren
pvTab.RefreshTable
Set pvField = pvTab.PivotFields("WL.Datum")
With pvField
Application.ScreenUpdating = False
'Filter des Pivotfeldes löschen - zeigt alle zutreffen Werte des Pivotfeldes an
.ClearAllFilters
'Nicht gewünschte Items ausblenden
For Each pvItem In .VisibleItems
boolAusblenden = True
'PivotItem mit den Wunschwerten vergleichen
For Each rngZelle In rngTagesdat.Cells
If IsDate(rngZelle.Value) Then
If pvItem.Value = Format(rngZelle, "M\/D\/YYYY") Then
boolAusblenden = False
Exit For
End If
End If
Next
'Pivotitem ggf. ausblenden
If boolAusblenden = True Then
If .VisibleItems.Count = 1 Then
MsgBox "Keine Eintrage zu gewünschten Datumswerten gefunden!"
Else
pvItem.Visible = False
End If
End If
Next
Application.ScreenUpdating = True
End With
End Sub

Anzeige
AW: Pivot nur bestimmte selektieren
23.02.2012 15:24:01
lutz
Hallo Franz,
vielen Dank - klappt leider nicht, bei
.ClearAllFilters
steigt er aus und sagt die Eingenschaft wird nicht unterstützt.
Ich bin mit etwas tüfteln auf
Sub Set_SeitenfeldJC()
Dim XXTagesdat As String
XXTagesdat = Sheets("Eingabe").Range("A5")
Dim rngPItems As Range
Dim pItem As PivotItem
Set rngPItems = Range(ActiveCell, ActiveCell.End(xlDown))
For Each pItem In ActiveSheet.PivotTables("PivotTable1"). _
PivotFields("WL.Datum").PivotItems
'If Application.WorksheetFunction.CountIf(rngPItems, pItem) > 0 Then
If pItem  XXTagesdat Then
pItem.Visible = False
Else
pItem.Visible = True
End If
Next pItem
End Sub
gekommen aber das ist nur mit einem Wert - aus Zelle A5, ich bräuchte aber A4:A10 und evt. auch noch B4:B10
Ist das vielleicht einfacher?
Vielen Dank und viele Grüße Lutz
Anzeige
AW: Pivot nur bestimmte selektieren
23.02.2012 16:51:38
fcs
Hallo Lutz,
ich hab mit Excel-2007 gearbeitet.
In Excel 2003 gibt es das Löschen des Filters wohl noch nicht als VBA-Anweisung oder die Syntax ist anders.
Ich hab dein Makro mal versucht so umzustellen, dass mehrer Datumswerte als Filter gestzt werden. So läuft es zumindest unter Excel 2007 in meiner Testdatei.
Gruß
Franz
Sub Set_SeitenfeldJC()
Dim XXTagesdat As String, rngDatum As Range, rngZelle As Range
Dim boolAusblenden As Boolean
Set rngDatum = Sheets("Eingabe").Range("A5:A10")
Dim rngPItems As Range
Dim pItem As PivotItem
For Each pItem In ActiveSheet.PivotTables("PivotTable1"). _
PivotFields("WL.Datum").HiddenItems
pItem.Visible = True
Next
For Each pItem In ActiveSheet.PivotTables("PivotTable1"). _
PivotFields("WL.Datum").PivotItems
boolAusblenden = True
For Each rngZelle In rngDatum.Cells
XXTagesdat = Format(rngZelle, "M\/D\/YYYY") 'Nur so funktioniert es in Excel 2007
'        XXTagesdat = rngZelle 'unterExcel 2003 evtl. auch so
If pItem = XXTagesdat Then
boolAusblenden = False
Exit For
End If
Next rngZelle
If boolAusblenden = True Then
pItem.Visible = False
End If
Next pItem
End Sub

Anzeige
AW: Pivot nur bestimmte selektieren
23.02.2012 21:07:28
lutz
Hallo Franz tausend Dank - stimm unter 2003 geht es nur mit der unteren Zeile - schön das Microsoft da so kompatibel ist.
Vielen Dank für Deine Hilfe und noch einen wunderschönen Abend für Dich.
Viele Grüße Lutz
AW: Frage beantwortet owT
24.02.2012 08:45:46
fcs

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige