Performance PivotTable Abfrage

C

carsamba555

Hallihallohallöchen,

ich habe einige Probleme bei meiner Arbeit mit Pivot Tabellen und Visual Basic. Ich arbeite zum 1. mal mit beiden Themen, die Grundlagen in VB fallen mir aber sehr leicht, da ich Java programmieren kann.

Und zwar habe ich eine Pivot Tabelle mit 5 Spalten:
1.Kostenstelle,2.Fahrzeugbezeichnung,3.Fahrzeug-ID,4.Tätigkeit,5.Kosten.
Datensätze sind es etwa 1400 (Zeilen)

Hierzu habe ich 2erlei Makros: Selektion von Kostenstellen (5 Makros für 5 Standorte)-->bezieht sich auf die Spalte Kostenstellen, Selektion von Tätigkeit (4 Makros für 4 Tätigkeitsgebiete)-->bezieht sich auf die Spalte Tätigkeit.

Problem1:
Die jeweiligen Makros laufen mit Schleifen, um die entsprechenden Kostenstellen sichtbar, und die nicht entsprechenden Kostenstellen nicht sichtbar zu machen. Die Berechnung dauert aber sehr lange, ist das normal? Es sind 65 Kostenstellen.
Aufbau so:
-----------------------------------------------------------------
For i = 1 To .PivotItems.Count
If .PivotItems(i).Name Like "L*" Then
.PivotItems(i).Visible = True

'Alle anderen Kostenstellen nicht sichtbar
Else
.PivotItems(i).Visible = False
-----------------------------------------------------------------
Der Makro Rekorder macht das so, dass er einfach alle Kostenstellen auflistet, und diese einfach entweder Visible True oder False setzt. Das geht aber nicht, weil ich nicht immer die gleichen Kostenstellen habe.



Problem2 (Hauptproblem):
Wenn ich ein Makro gestartet habe, und er aus den Gesamtdaten eine Selektion durchgeführt hat, kann ich daraufhin nicht das nächste Makro starten, weil ja die dafür erforderlichen Daten Visible False sind. Ich muss immer zuerst im Filter auf "Alle anzeigen" klicken, damit mir erst mal alle angezeigt werden, und erst dann kann ich das nächste Makro starten.
Ich habe gedacht "na gut, dann lass ich ihn vor jedem nächsten Makro erst mal wieder alle anzeigen", durch folgenden Schleifenpart:
-----------------------------------------------------------------
'Macht alle Kostenstellen sichtbar
For i = 1 To .PivotItems.Count
.PivotItems(i).Visible = True
Next i
-----------------------------------------------------------------
...und dann beginnt erst die Selektion über die nächste Schleife, aber das dauert unheimlich lange.
Ich habe sehr lange nach diesem Problem gegoogelt, aber noch keine "hilfreiche" Lösung gefunden. Komischerweise wenn man auf "Alle anzeigen" im Filter klickt, erscheinen die Daten sofort.

Könnt ihr mir eventuell weiterhelfen? Ich würde das Problem sehr gerne lösen.

Danke im Voraus für eure Aufmerksamkeit.
MFG
 
OK scheint keiner ne Ahnung zu haben...

Ich habe eine Lösung gefunden die die Sache von ein paar Minuten auf 2 Sekunden reduziert.

Diese Methode definieren:
---------------------------------------------------------------------------------------------------------------------------
Sub getMoreSpeed(bDoIt As Boolean)

Application.ScreenUpdating = Not (bDoIt)
Application.EnableEvents = Not (bDoIt)
Application.Calculation = IIf(bDoIt, xlCalculationManual, xlCalculationAutomatic)

End Sub
---------------------------------------------------------------------------------------------------------------------------


Dann:
---------------------------------------------------------------------------------------------------------------------------
Sub...
getMoreSpeed true
"EUER CODE"
getMoreSpeed false
End Sub




Viel Spass damit
 
Zurück