Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Alle Pivotitems visible setzen mit Makro

Alle Pivotitems visible setzen mit Makro
22.06.2007 10:11:31
Günther
Hallo,
ich will in einer Pivottable das Feld KTO per Makro umschalten lassen, zwischen "alle anzeigen" und einer Auswahl von 5 Werten aus einigen 1000 Werten.
Mit dem Excel Makro-recorder erzeugt es mir einen Code, wenn ich "alle" visible setze, der jeden einzelnen Wert auflistet. Dadurch entsteht der Fehler, "Prozedur zu groß".
Gibt es eine möglichkeit, erst alle Werte auf visible = false oder true zu setzen, ohne diese alle einzeln im code aufzulisten und dann nur die 4-5 Werte auf True?
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Kto")
.PivotItems("D000004").Visible = True
.PivotItems("D014520").Visible = True
.PivotItems("D014565").Visible = True
.PivotItems("D014620").Visible = True
.PivotItems("D021063").Visible = True
End With

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Pivotitems visible setzen mit Makro
23.06.2007 04:42:04
fcs
Hallo Günther,
nachfolgend Beispielmakros, wie man das Ein-/Ausblenden von Einträgen in Feldern einer Pivottabelle per Makro automatisieren kann.
In den 1. drei Makros werden immer das Feld und ggf. die Ein- bzw. Auszublenden Einträge der Pivottabelle festgelegt und dann die Sub-Routine zur Anpassung der Pivottabelle aufgerufen.
Für deinen Fall muss du dann "Sachbearbeiter" durch "Kto" ersetzen und im Array jeweils die Kontonummern auflisten.
Gruß
Franz

Sub WenigeEintraegeEinblenden()
Dim PivotFeld As PivotField, varEintraege As Variant
Set PivotFeld = ActiveSheet.PivotTables("Pivot-Tabelle1").PivotFields("Sachbearbeiter")
varEintraege = Array("BOTHE", "DEPRE")
Application.ScreenUpdating = False
Call PivotItemsEinAusblenden(Feld:=PivotFeld, Einblenden:=True, Liste:=varEintraege)
Application.ScreenUpdating = True
End Sub
Sub WenigeEintraegeAusblenden()
Dim PivotFeld As PivotField, varEintraege As Variant
Set PivotFeld = ActiveSheet.PivotTables("Pivot-Tabelle1").PivotFields("Sachbearbeiter")
varEintraege = Array("BOTHE", "DEPRE")
Application.ScreenUpdating = False
Call PivotItemsEinAusblenden(Feld:=PivotFeld, Einblenden:=False, Liste:=varEintraege)
Application.ScreenUpdating = True
End Sub
Sub AlleSachbearbeiterEinblenden()
Dim PivotFeld As PivotField
Set PivotFeld = ActiveSheet.PivotTables("Pivot-Tabelle1").PivotFields("Sachbearbeiter")
Application.ScreenUpdating = False
Call PivotItemsAlleEinblenden(Feld:=PivotFeld)
Application.ScreenUpdating = True
End Sub
Sub PivotItemsEinAusblenden(Feld As PivotField, Einblenden As Boolean, Liste As Variant)
'Abhängig vom Wert von Einblenden werden nur die Listenelemente angezeigt oder
'nur die Listenelemente ausgeblendet
'Einblenden = True : Listenelemente werden angezeigt, alle anderen ausgeblendet
'Einblenden = False : Listenelemente werden ausgeblendet, alle anderen angezeigt
Dim Pivot_Item As PivotItem, I%, bAnzeigen As Boolean
For Each Pivot_Item In Feld.PivotItems
bAnzeigen = False
For I = LBound(Liste) To UBound(Liste)
If Pivot_Item.Name = Liste(I) Then
bAnzeigen = True
Exit For
End If
Next
If bAnzeigen = False Then
Pivot_Item.Visible = Not Einblenden
Else
Pivot_Item.Visible = Einblenden
End If
Next
End Sub
Sub PivotItemsAlleEinblenden(Feld As PivotField)
'Alle Einträge des Feldes einblenden
Dim Pivot_Item As PivotItem
For Each Pivot_Item In Feld.PivotItems
Pivot_Item.Visible = True
Next
End Sub


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige