Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1400to1404
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

Worksheet Pivot Table Update

Worksheet Pivot Table Update
16.01.2015 14:40:35
Martin
Hallo Leute,
dieser Event wird bei mir nie ausgeführt, egal ob ich per Datenschnitt oder direkt in der Tabelle die Auswahl ändere - einer eine Idee?
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim wsMain As Worksheet
Dim ws As Worksheet
Dim ptMain As PivotTable
Dim pt As PivotTable
Dim pfMain As PivotField
Dim pf As PivotField
Dim pi As PivotItem
Dim bMI As Boolean
On Error Resume Next
Set wsMain = ActiveSheet
Set ptMain = Target
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each pfMain In ptMain.PageFields
bMI = pfMain.EnableMultiplePageItems
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
If ws.Name & "_" & pt  wsMain.Name & "_" & ptMain Then
pt.ManualUpdate = True
Set pf = pt.PivotFields(pfMain.Name)
bMI = pfMain.EnableMultiplePageItems
With pf
.ClearAllFilters
Select Case bMI
Case False
.CurrentPage = pfMain.CurrentPage.Value
Case True
.CurrentPage = "(All)"
For Each pi In pfMain.PivotItems
.PivotItems(pi.Name).Visible = pi.Visible
Next pi
.EnableMultiplePageItems = bMI
End Select
End With
bMI = False
Set pf = Nothing
pt.ManualUpdate = False
End If
Next pt
Next ws
Next pfMain
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet Pivot Table Update
16.01.2015 15:11:11
selli
hallo martin,
nimm mal die zeile
On Error Resume Next
raus.
dann bleibt der code wenigstens in der betreffenden zeile stehen und zieht nicht gnadenlos bis zum ende durch.
dein szenario kann und will sicherlich keiner nachbauen.
gruß
selli

AW: Worksheet Pivot Table Update
16.01.2015 22:34:34
Luschi
Hallo Martin,
selli hat ja schon empfohlen, diese Zeile 'On Error Resume Next' zu deaktivieren.
Diese Zeile: 'For Each ws In ThisWorkbook.Worksheets' ist überflüssig, da es ja ein
Tabellenergeignis für genau die Tabelle ist, in der sich die Pivottabelle ändert -
mit 'Target.Parent' kriegt man raus, um welche Tabelle es sich handelt.
Die oberste For.Schleife 'For Each pfMain In ptMain.PageFields', sorgt dafür, das nur
was passiert, wenn die sich in der ändernde Pivottabelle auch mindestens 1 'PageField'
befindet - wenn nicht, wird sofort zum Schleifenschluß gesprungen - und fertig ist.
Schmeiß diese Schleife also auch weg.
Gruß von Luschi
aus klein-Paris
PS: setze am Anfang der nun 1. Forschleife einen Haltepunkt (F9-Taste) oder benutze den Stop-Befehl.
Dann hält der Debugger an dieser Stelle an und mit der F8-Taste kann man den weiteren Weg zeilenweise nachvollziehen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige