ich habe ein Problem beim ausdrucken ein Pivottabelle mit einer vorher getroffen Auswahl aus einer Listbox.
Das Probelm ist nun das wenn ich eine Kostenstelle(KST) aus der Listbox auswähle und auf Drucken gehe, werden keine Daten für diese KST angezeigt. Nehme ich die gleiche KST und wiederhole diesen Vorgang 3x werden beim 3. mal die Daten ausgegeben. Setzt man in der Zeile
ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kostenstellen].[Nr_und_Bez].[Nr_und_Bez]").VisibleItemsList = Array( _
"[Kostenstellen].[Nr_und_Bez].&[" & Kstauswahl & "]")
ein Haltepunkt werden die Daten beim ersten Ausführen, in Abhängigkeit von der Geschwindigkeit des betätigens von F8 angezeigt oder nicht. Drückt man z.Bsp F8 im Sekundentakt -> Daten werden ausgegeben. Dückt man F8 so schnell es geht -> keine Daten. Beim drücken von F8 mit einer Pause dazwischen, sieht man das die Daten verzögert in der Pivottabelle ausgegeben werden. Dieseverzögerung ist nicht mehr zusehen wenn der Vorgang3x wiederholt wurde.Hat jemand für dieses Problem ein Lösung ?
Pivottabelle nach dem 1. ausführen
Pivottabelle nach dem 3. ausführen
Der Code für das ausdrucken sieht so aus. Die auskommentierten Zeile sind meine Versuche das Problem zu lösen.
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Sub CommandButton2_Click() ' DRUCKEN
' Drucken der Efue Bauleistung
Dim Kstauswahl As String
Dim i, z As Integer, t As Integer
t = 8
myTimer = Timer()
' Unload Me
ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kostenstellen].[Nr_und_Bez].[Nr_und_Bez]").ClearAllFilters
Application.Dialogs(xlDialogPrinterSetup).Show 'Druckerauswahl aufrufen
For i = 0 To ListBox2.ListCount - 1 'Für jede Zeile der Listbox2
' Worksheets("gewählte-KST").Cells(t, 6).Value = ListBox2.List(i) 'Eintrag aus Listbox2 in Tabelle1-SpalteC- unten dranhängen
' Application.ScreenUpdating = False
Kstauswahl = ListBox2.List(i)
ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kostenstellen].[Nr_und_Bez].[Nr_und_Bez]").VisibleItemsList = Array( _
"[Kostenstellen].[Nr_und_Bez].&[" & Kstauswahl & "]")
' Application.Wait (Now + TimeValue("0:00:01")) ' Pause eingefügt, da die Daten nicht schnell genug geliefert wurden. Es kamen spord. Blätter mit 0 raus
' ActiveSheet.Calculate
' Application.Wait (4000) ' Pause eingefügt, da die Daten nicht schnell genug geliefert wurden. Es kamen spord. Blätter mit 0 raus
' Application.Dialogs(xlDialogPrint).Show 'Druckerauswahl aufrufen
Do
DoEvents
Loop Until Timer > (myTimer + 2) ' warte 2 Sekunden
' Sleep 1500
' Application.Wait (Now + TimeValue("0:00:01")) ' Pause eingefügt, da die Daten nicht schnell genug geliefert wurden. Es kamen spord. Blätter mit 0 raus
' ActiveSheet.PivotTables("PivotTable1").PivotCache.BackgroundQuery = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
t = t + 1
Next i
Do While Worksheets("gewählte-KST").Cells(t + 1, 6) ""
Worksheets("gewählte-KST").Cells(t + 1, 6).Value = ""
Loop
' Application.ScreenUpdating = True
ActiveSheet.PivotTables("PivotTable1").PivotFields("[Kostenstellen].[Nr_und_Bez].[Nr_und_Bez]").ClearAllFilters
Unload Me
End Sub