Pivot Berichtsfilter klappt nur beim ersten mal, danach werden die Daten nicht mehr aktualisiert

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von peterfido.

    Pivot Berichtsfilter klappt nur beim ersten mal, danach werden die Daten nicht mehr aktualisiert

    Hallo Communitie,

    ich stehe mal wieder vor einen riesen Problem

    Ich habe ein Array mit unterschiedlichen Projektnamen gefüllt (Variable = wbs_index bzw wbs)

    Es wird eine Pivot-Tabelle erzeugt (klappt wunderbar). Diese soll über den Bereichsfilter "wbs_index" die jeweiligen individuellen Werte für das über den index eingetragene Projekt darstellen.

    Das klappt beim ersten mal wunderbar. Das war es aber auch schon. VBA zeigt zwar die wbs_index Variablen korrekt an, jedoch hat dies keinen Einfluss auf die Pivot Tabelle. Weder die Daten noch der Projektname ändern sich. Ich bin am verzweifeln. Hier ein Auzug meines Codes. Falls ihr sonst noch Verbesserungsvorschläge habt - jede Hilfe ist willkommen.

    Visual Basic-Quellcode

    1. For Each WBS_Index In ActiveSheet.PivotTables("PV_" & (i)).PivotFields("Project Name").WBS_Index
    2. 'For Each WBS_Index In WBS
    3. Workbooks(Dat_Name).Activate
    4. ActiveSheet.PivotTables("PV_" & (i)).PivotFields("Project Name").ClearAllFilters
    5. ActiveSheet.PivotTables("PV_" & (i)).PivotFields("Project Name").CurrentPage = WBS_Index
    6. Letztezeile = Workbooks(Dat_Name).Worksheets(1).Range("A1048576").End(xlUp).Row
    7. Chart_Name = "170328 Vorlage.xlsx"
    8. Range("A5:M" & Letztezeile).Copy
    9. Set such = Range("A5:M" & Letztezeile)
    10. Min_Wert = WorksheetFunction.Min(such)
    11. Max_Wert = WorksheetFunction.Max(such)
    12. Min_Wert = Application.WorksheetFunction.Round(Min_Wert / 100000, 0) * 100000
    13. Max_Wert = Application.WorksheetFunction.Round(Max_Wert / 100000, 0) * 100000
    14. Letztezeile = Workbooks(Chart_Name).Sheets(1).Range("A1048576").End(xlUp).Row
    15. Workbooks(Chart_Name).Sheets(1).Range("A2").Select
    16. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    17. :=False, Transpose:=False
    18. Workbooks(Chart_Name).Sheets(2).name = Left(WBS_Index, 20) & "... Chart"
    19. Workbooks(Chart_Name).Sheets(1).name = Left(WBS_Index, 26) & "..."
    20. Next WBS_Index


    ****
    Ergänzung
    * Ich habe jetzt einmal 'On Error Resume Next' rausgenommen. Jetzt bricht das Makro bei der Stelle:
    * ActiveSheet.PivotTables("PV_" & (i)).PivotFields("Project Name").ClearAllFilters
    * ActiveSheet.PivotTables("PV_" & (i)).PivotFields("Project Name").CurrentPage = WBS_Index
    * ab. Es kommt der FehlerNr 1004 Beschreibung: Die PivotTables-Egienschaft des Worksheet-Objektes kann nicht zugeordnet werden.
    * Auch hier ist es so, dass der erste Durchlauf funktioniert, beim zweiten Durchlauf bricht er mit obiger Fehlermeldung ab.
    * Ich bin verzweifelt.

    Vielen Dank

    Jörg

    ~blaze~: Rot ist den Moderatoren vorbehalten --> Änderung zu orange, hab' bei der Gelegenheit auch gleich noch den VB-Tag eingefügt

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „~blaze~“ ()

    Hallo,

    versuch es mal direkt, ohne ActiveSheet. Evtl. ist es nicht mehr aktiv. In Zeile 15 würde ich hinter das Copy gleich das Ziel angeben. Zeilen 24 und25 scheinen das Ziel zu sein. Vermeide da erst Select und dann Selection. Das kann zu Problemen führen.

    Edit:
    Mit einer angehängten Excel-Datei, wo der Fehler auftaucht, können hilfsbereite Forumuser die Situation besser testen. Aber bitte keine AutoOpen Makros nutzen.
    Gruß
    Peterfido

    Keine Unterstützung per PN!