23.11.2023, 12:17
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
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
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
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
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
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