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

Vierte Pivot-Tabelle reagiert nicht auf VBA Code

Vierte Pivot-Tabelle reagiert nicht auf VBA Code
16.01.2014 13:45:15
Wos
Mahlzeit allen zusammen,
ich habe mit meinem hier bereits modifizierten Code ein neues Problem.
Zum Aufbau:
Auf drei Datenblättern sind 4 Pivottabellen verteilt:
Datenblatt 1: PivotTabelle 1
Datenblatt 2: PivotTabelle 2
Datenblatt 3: PivotTabelle 3 und 4
Alle Pivottabllen haben diesselbe Datenbasis und die gleichen Bereichsfilter.
Diese Filter möchte ich über Listenauswahlfelder in Datenblatt 3 steuern.
Hierfür habe ich zunächst folgenden Code für das Datenblatt 3 hinterlegt, der mir hier empfohlen wurde und in der alten Datei (die etwas simpler gestrickt war (Blatt 3 hatte keine Pivottabellen) funktioniert hat:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Call PivAendern
Application.EnableEvents = True
End Sub

In einem Modul findet sich nun folgender Code (hier mal nur für einen der fünf Bereichsfilter):
Sub PivAendern()
' Regionsauswahl 2012 2013 Pivot Analyser
With Sheets("Pivot_Analyser_2012").PivotTables(1)
.PivotFields("Region").CurrentPage = Sheets("Kundenumsatzsegmente").[C3].Value
'.PivotCache.Refresh
End With
With Sheets("Pivot_Analyser_2013").PivotTables(1)
.PivotFields("Region").CurrentPage = Sheets("Kundenumsatzsegmente").[C3].Value
'.PivotCache.Refresh
End With
' Regionsauswahl 2012 2013 Kundenumsatzsegmente
With Sheets("Kundenumsatzsegmente").PivotTables(1)
.PivotFields("Region").CurrentPage = Sheets("Kundenumsatzsegmente").[C3].Value
'.PivotCache.Refresh
End With
End Sub

Seltsamerweise werden Pivottabelle 1, 2, und 4 aktuallisiert, wen man die Region in Zelle C3 ändert. Nicht jedoch Pivottabelle 3.
Stattdessen taucht neuerdings folgender Fehler auf:
"Die Methode Current Page für das Objekt PivotField ist fehlgeschlagen"
Weiß jemand wo das Problem liegt?
Vielen Dank schon einmal

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vierte Pivot-Tabelle reagiert nicht auf VBA Code
16.01.2014 13:54:05
Wos
Noch ein Nachtrag,
stelle ich den Filter der Pivottabelle 3 manuell um so stürzt die Datei direkt ab.

noch ein Nachtrag (wieder offen)
16.01.2014 13:57:41
Klaus
Hallo Wos,
wenn du dir selber antwortest musst du den Haken bei "noch offen" setzen, sonst sehen potentielle Helfer deinen Thread nicht mehr.
Ich kann dir leider nicht helfen da ich mich mit Pivot nicht auskenne, habe aber den Thread für dich wieder auf "offen" gesetzt.
Grüße,
Klaus M.vdT.
antworte nicht auf diesen Beitrag - und falls doch, achte darauf mit der Antwort den Thread nicht wieder zu schließen!

AW: Vierte Pivot-Tabelle reagiert nicht auf VBA Code
16.01.2014 15:41:34
EtoPHG
Hallo Wos,
Warum du etwas ändern musst in einer Zelle um die Pivottabelle zu aktualisieren, ist mir schleierhaft. Die .Refresh-Methode müsste doch ausreichen!
Die 4. Tabelle aktualisiert nie, weil du im Blatt "Kundenumsatzsegmente" nur eine Pivottabelle ansprichst, nämlich die mit Index 1. Um alle anzusprechen würde sich z.B. For-Each anbieten:
Dim pt as PivotTable
For Each pt In Workheets("Kundenumsatzsegmente").PivotTables
pt.Refresh
Next pt

Gruess Hansueli

Anzeige
AW: Vierte Pivot-Tabelle reagiert nicht auf VBA Code
16.01.2014 17:30:30
Wos
Hallo EtoPHG,
vielen Dank für deine schnelle Antwort. Der Hintergrund ist folgender:
Diese Datei dient End-Usern als Auswertungsdatei. Diese sind mit Einschränkungen nicht in der Lage oder Willens vier Pivottabellen Bereichsfilter seperat anzupassen. Dies ist aber notwendig damit die Tabellen, die sich wiederum aus diesen vieren Pivottabellen ihre Daten ziehen, auch die richtigen Werte anzeigen.
Um die Sache für die User zu vereinfachen, wollte ich eben einen Auswahlfilter schaffen, der bewirkt, dass sofort alle Daten neu und richtig gerechnet werden.
Leider kann ich fast gar kein VBA, deshalb sagt mir die .Refresh Methode gar nichts. Ich habe zwar eine Cache.Refresh Anweisung mal im Code gehabt s.o., die allerdings nichts sichtbares bewirkt hat, weshalb ich sie raugenommen habe. Die alte Tabelle funktioniert auch so super.

Ich habe nun zwar mit der Anweisung "For Each" etwas rumprobiert,
Z.B. diesen hier in der letzten Anweisung:
Dim pt As PivotTable
For Each pt In Worksheets("Kundenumsatzsegmente").PivotTables
With Sheets("Kundenumsatzsegmente").PivotTables(1)
.PivotFields("Region").CurrentPage = Sheets("Kundenumsatzsegmente").[C3].Value
'.PivotCache.Refresh
pt.Refresh
End With
Next pt
Vielleicht würde es mir ja weiterhelfen, wenn ich mir jemand sagen könnte, wie ich den Index einer Pivottabelle rausfinden kann. Dies ist doch dann die Zahl in meinem VBA Code der in Klammern hinter dem Ausdruck "PivotTables" steht oder?
Oder vielleicht kennt auch jemand einfach die konkrete Lösung des Problems.
Vielen Dank jedem der sich mit mir erbarmt.

Anzeige
AW: Vierte Pivot-Tabelle reagiert nicht auf VBA Code
16.01.2014 17:42:06
Wos
Mit dem For Each code wie ich ihn verwendet habe rechnet Excel 15 min und ändert gar keinen Bereichsfilter mehr...

AW: Vierte Pivot-Tabelle reagiert nicht auf VBA Code
17.01.2014 08:54:53
EtoPHG
Hallo Wos,
Zitat:Oder vielleicht kennt auch jemand einfach die konkrete Lösung des Problems.
Klar: Den Grund habe ich oben angegeben. Deine ganze Mappe nachzubauen kannst du wohl nicht verlangen.
Wir können deinen Tabellenaufbau nicht sehen, sondern nur raten. Lade halt eine Beispielmappe, wenn du nicht weiter kommst ins Forum. Wenn du vorgeschlagenen Code nicht genau so anwendest, musst du dich nicht wundern, wenn was Unvorhergesehenes passiert. Wie du den Index von Pivottables auf einem Tabellenblatt ist relativ einfach:
Worksheets("Registername").PivotTables.Count ergibt die Anzahl n Pivottables auf dem Blatt und damit laufen die Indeces von 1-n.
Gruess Hansueli

Anzeige
AW: Vierte Pivot-Tabelle reagiert nicht auf VBA Code
17.01.2014 14:54:42
Wos
Hallo EtoPHG,
Ich habe mit keinem Wort gesagt, irgendjemand soll meine Datei nachbauen. Ich suche einfach nur Hilfe, da ich kein Programmierer bin und noch nie programmiert habe. Es gehört jetzt zu meinen Aufgaben solche Berichte zu erstellen, das ist alles.
Hier der Link zur Datei:
https://www.herber.de/bbs/user/88873.xlsm
Hoffe das funktioniert.
Im Reiter Kundenumsatzsegmente sollen die Filter in der Spalte C alle Bereichsfilter der Pivot-Tabellen steuern. Sowohl der beiden im selbigen Reiter also auch die beiden Pivots in den Reitern "Pivot_Analyser 2012" und "Pivot_Analyser 2013".
Der bisherige VBA Code sollte ebenfalls darin enthalten sein.
Vielen Dank für Ihre Mithilfe.
Beste Grüße
Wos

Anzeige
AW: Vierte Pivot-Tabelle reagiert nicht auf VBA Code
17.01.2014 17:32:20
EtoPHG
Hallo Wos,
Mache folgendes:
1. Die Zellen C3:C8 im Blatt "Kundenumsatzsegmente" müssen als Standard formatiert sein! (Nicht Zahlen!)
2. Lösche das (Standard) Modul1 und den darin enthaltenen Code.
3. Ersetze den gesamten Code im Blatt "Kundenumsatzsegmente" durch:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lRow As Long
Dim pt As PivotTable
On Error GoTo ErrExit
If Intersect(Target, Range("C3:C8")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Application.ScreenUpdating = False
For lRow = 3 To 8
For Each pt In Worksheets("Pivot_Analyser_2012").PivotTables
pt.PivotFields(Cells(lRow, 2).Text).CurrentPage = Cells(lRow, 3).Text
Next pt
For Each pt In Worksheets("Pivot_Analyser_2013").PivotTables
pt.PivotFields(Cells(lRow, 2).Text).CurrentPage = Cells(lRow, 3).Text
Next pt
For Each pt In PivotTables
pt.PivotFields(Cells(lRow, 2).Text).CurrentPage = Cells(lRow, 3).Text
Next pt
Next lRow
ErrExit:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Damit sollten alle Auswahlmöglichkeiten deine Pivottabellen anpassen
Gruess Hansueli

Anzeige
AW: Vierte Pivot-Tabelle reagiert nicht auf VBA Code
20.01.2014 10:43:05
Wos
Hallo EtoPHG,
ich habe den Code grade ausprobiert. Scheint top zu funktionieren.
Vielen lieben Dank dafür!
Ich hoffe ich komme über die Zeit auch dahin so etwas mal eben aus dem Ärmel zu schütteln :-)
Besten Dank nochmals dafür. Das hilft mir wirklich weiter jetzt!
Viele Grüße
Wos

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige