Office-Fragen.de
Pivottabellen - Pivottabelle mit Powerqery und Cubewert berechnen-aktualisieren - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: Pivottabellen - Pivottabelle mit Powerqery und Cubewert berechnen-aktualisieren (/thread-28995.html)



Pivottabellen - Pivottabelle mit Powerqery und Cubewert berechnen-aktualisieren - fl1448 - 23.11.2023

Hallo,

ich hab ein Problem, wenn ich über VBA eine Pivottabelle mit Powerquery und Cubewerten aktualisieren lassen wird diese nicht durchgeführt. Ohne VBA wird die Berechnung und Aktualisierung durchgeführt.
Die Berechnung und Aktualisierung klappt auch wenn ich ein Haltepunkt setze.
z.Bsp in der Zeile Next i

Wenn mann das 
Code:
ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kostenstellen].[Nr_und_Bez].[Nr_und_Bez]").ClearAllFilters
entfernt und die Seitenvorschau beendet. Dann werden die Daten korrekt in der Pivottabelle angezeigt. Bevor die Daten angezeigt werden, ist ein sichbare Verzögerung zusehen (< 1 Sekunde). Nimmt man jetzt den ClearAllFilters wieder rein und nimmt bei der Auswahl immer die selbe Kostenstelle, dann werden die gefilterten Daten beim 3. Durchlauf in der Pivottabelle korrekt angezeigt.
Ablauf:
Druckauswahl -> auswahl Kostenstelle -> Seitenvorschau (keine Daten) -> Seitevorschau beenden
Druckauswahl -> auswahl Kostenstelle -> Seitenvorschau (keine Daten) -> Seitevorschau beenden
Druckauswahl -> auswahl Kostenstelle -> Seitenvorschau (jetzt mit Daten) -> Seitevorschau beenden

Code:
Private Sub CommandButton3_Click() 'Seitenvorschau
    Dim Kstauswahl As String
    Dim i As Integer, t As Integer

    '    t = 8
    Unload Me
    ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kostenstellen].[Nr_und_Bez].[Nr_und_Bez]").ClearAllFilters
  
    For i = 0 To ListBox2.ListCount - 1                  'Für jede Zeile der Listbox2
        '            Tabelle2.Cells(t, 1).Value = ListBox2.List(i)  'Eintrag aus Listbox2 in Tabelle1-SpalteC- unten dranhängen
        '             Application.ScreenUpdating = True
        Kstauswahl = ListBox2.List(i)
        ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kostenstellen].[Nr_und_Bez].[Nr_und_Bez]").VisibleItemsList = Array("[Kostenstellen].[Nr_und_Bez].&[" & Kstauswahl & "]")
        'Seitenansicht aufrufen
        '            t = t + 1
    Next i
  
'        Sleep (500)        Pause Variante1

  
'        Do                 Pause Variante2
'        DoEvents
'        Call Sleep(1000)
'    Loop Until Application.CalculationState = xlDown
  
  
  
'    Application.Wait (Now + TimeValue("00:00:02"))   Pause Variante3
  
    Application.Dialogs(xlDialogPrintPreview).Show
'    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="d:kostenstelle.pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
    '  Do While Worksheets(2).Cells(t + 1, 1) <> ""
    '      Tabelle2.Cells(t + 1, 1).Value = ""
    '  Loop
    '   Application.ScreenUpdating = True
    '   ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kostenstellen].[Nr_und_Bez].[Nr_und_Bez]").ClearAllFilters
  
  
  
    Unload Me
  
End Sub
In den auskommentierten Zeile sind meine Varinten zu sehen um dem Code mehr Zeit für die Aktualisierung zu geben, leider ohne erfolg.

Hat jemand noch ein Idee wie ich dem Code beibringen kann, das die Daten in der Pivottabelle aktualisiert werden vor dem:
Application.Dialogs(xlDialogPrintPreview).Show