Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
664to668
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pivot-Table VBA Programmierung

Pivot-Table VBA Programmierung
14.09.2005 07:54:30
Chris
Guten Morgen,
könnte mir jemand den VBA Code zum ausblenden aller "Items" in einem Kriterium einer Pivot-Tabelle - unabhängig davon, wie das Item heißt!
Da die Einträge variieren, wäre es sehr umständlich es über diese Anweisung zu machen:
with ActiveSheet.PivotTables("Menge").PivotFields("test")
.PivotItems("hallo").Visible = False
.PivotItems("Guten Tag").Visible = False
etc.
Über einen Ratschlag wäre ich Euch sehr dankbar.
Gruß
Chris

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot-Table VBA Programmierung
14.09.2005 08:48:46
Luschi
Hall Chris,
habe Letztens dieses Beispiel hier veröffentlicht:
https://www.herber.de/bbs/user/26540.xls
Darin ist die Schleife "For Each pI In pF.PivotItems", die alle Items
eines Feldes durchläuft. Allerdings kann man garnicht alle Items unsichtbar
machen, dann kommt 1 Fehlermeldung. 1 Item muß immer sichtbar sein.
Gruß von Luschi
aus klein-Paris
AW: Pivot-Table VBA Programmierung
14.09.2005 09:18:57
Chris
Hallo Luschi,
vielen Dank für Deine Antwort.
Nun allerdings nochmal meine Frage. Wie kann ich es erreichen, dass ich aus einer Vielzahl von Items, lediglich eines Sichtbar machen kann, ohne dass ich jedes einzelne Item beim Namen nennen und nicht-sichtbar mache muss?
Vielen Dank schon jetzt einmal für die Antwort
Gruß
Chris
Anzeige
AW: Pivot-Table VBA Programmierung
14.09.2005 11:32:18
Luschi
Hallo Chris,
wenn Du Dir meine xls-Beispieldatei heruntergeladen hast, dann siehst Du folgenden Code:
Sub pivotFilter(tName As String, pName As String)
Dim wb As Workbook, ws As Worksheet, _
pTab As PivotTable, pF As PivotField, pI As PivotItem
Set wb = ThisWorkbook
Set ws = wb.Worksheets(tName)
Set pTab = ws.PivotTables(pName)
For Each pF In pTab.PivotFields
If pF.Name = "Firma" Then
For Each pI In pF.PivotItems
'alle Firmennamen durchlaufen und sichtbar schalten!
pI.Visible = True
If "alle" <> ws.Range("F27") Then
'für jede Firma die Gesamtsumme auslesen und _
vergleichen mit Auswahl-Liste
If pTab.GetPivotData("Betrag", pF.Name, pI.Name) < ws.Range("F27") Then
pI.Visible = False
End If
End If
Next pI
Exit For
End If
Next pF
'Pivot-Tabelle aktualisieren
ActiveSheet.PivotTables(pName).PivotCache.Refresh
'alle Objekt-Variablen deaktivieren
Set pI = Nothing
Set pF = Nothing
Set pTab = Nothing
Set ws = Nothing
Set wb = Nothing
End Sub
Die Schleife "For Each pF In pTab.PivotFields" durchläuft alle Felder.
Die Schleife "For Each pI In pF.PivotItems" durchläuft alle Items eines Feldes.
Entweder Du benennst 1 Item mit Namen und machst es sichtbar mit:
If pI.Name = "blabla" Then
pI.Visible = True
Else
pI.Visible = False
End If
Oder Du setzt 1 Bedingung wie z.B.:
If pTab.GetPivotData("Betrag", pF.Name, pI.Name) < ws.Range("F27") Then
pI.Visible = False
End If

Hier wird geprüft, ob der Item-Wert "Betrag" kleiner ist als Wert in der Zelle F27
aus der Tabelle mit dem Namen, der in der Variablen tName steht.
Nur so kannst Du die Items entsprechend anzeigen lassen oder auch nicht. Aber wie schon
gesagt, 1 Item muß sichtbar sein.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Pivot-Table VBA Programmierung
14.09.2005 12:06:07
Chris
Vielen Dank,
werd es mal in mein Projekt übertragen.
Wünsche dir noch einen schönen Tag
Gruß
Chris

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige