Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Auswertung über Datenschnitt

Auswertung über Datenschnitt
23.04.2020 09:37:21
Breuer
Hallo,
ich bin zum ersten mal mit einer Frage in diesem Forum unterwegs und was die VBA-Programmierung angeht, relativ unerfahren. Zumeist bediene ich mich der Makro-Aufzeichnungsfunktion und versuche anschließend eine Optimierung.
Aktuell habe ich folgende Frage:
Ich habe eine umfangreiche Excel-Datei mit zahlreichen Arbeitsblättern erstellt. Darin sind Pivot-Tabellen enthalten, die auf unterschiedliche Ausgangsdaten zurückgreifen. Auf einem Arbeitsblatt, auf dem mehrere Pivot-Tabellen mit unterschiedlicher Datengrundlage vorhanden sind, habe ich mittels Datenschnitt eine Auswertung erstellt. Dabei kann ich auf einen Button drücken und es werden mir in jeder Pivot-Tabelle die einheitlichen Jahreszeiträume ausgewertet. Im VBA sieht das beispielhaft wie folgt aus:
Sub achtzig()
' achtzig Makro
With ActiveWorkbook.SlicerCaches("Datenschnitt_BAK")
.SlicerItems("1980 - 1989").Selected = True
.SlicerItems("").Selected = False
.SlicerItems("

Für jeden weiteren Zeitraum, den ich auswerten möchte, besteht eine vergleichbar lange Prozedur, wodurch die Auswertung insgesamt sehr langsam wird.
An verschiedenen Stellen habe ich bereits gelesen, dass es nicht möglich ist, einen einheitlichen Datenschnitt für Pivot-Tabellen zu erstellen, die auf unterschiedlichen Daten basieren. Dennoch hoffe ich, dass jemand eine Idee hat, wie ich die Auswertung evtl. optimieren und dadurch beschleunigen kann.
Vielen Dank im Voraus und beste Grüße
Jens

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auswertung über Datenschnitt
23.04.2020 12:43:54
fcs
Hallo Jens,
probiere mal ob die Auswertung auch mit For-Next-Schleifen funktioniert.
Dann sind die Makros zumindest kompakter.
Ich hab zusätzlich die Bildschirmaktualisiert, und die Automatische Berechnung vorübergehend deaktiviert.
In wieweit dies die Ausführung des Makros beschleunig: ?
Pivottabellenberichte sind halt manchmal eine Welt für sich.
LG
Franz
Sub achtzig()
' achtzig Makro
Dim arrSlice() As String, arrSel() As Boolean, _
intS As Integer, arrDS(), intDS As Integer
Dim StatusCalc As Long
Dim wkb As Workbook
Dim objSlicerItem As SlicerItem
Const cAnzDS As Integer = 5 'Anzahl Datenschnitte -ggf. Wert anpassen
Const cAnzS As Integer = 10 'Anzahl Slicer-Items - ggf. Wert anpassen
On Error GoTo Fehler
Set wkb = ActiveWorkbook
ReDim arrDS(1 To cAnzDS)
intDS = intDS + 1: arrDS(intDS) = "Datenschnitt_BAK"
intDS = intDS + 1: arrDS(intDS) = "Datenschnitt_BAK2"
intDS = intDS + 1: arrDS(intDS) = "Datenschnitt_BAK3"
intDS = intDS + 1: arrDS(intDS) = "Datenschnitt_BAK4"
intDS = intDS + 1: arrDS(intDS) = "Datenschnitt_BAK5"
'ggf. weiter Datenschnitte ergänzen
ReDim arrSlice(1 To cAnzS), arrSel(1 To cAnzS)
intS = intS + 1: arrSlice(intS) = "":               arrSel(intS) = False
intS = intS + 1: arrSlice(intS) = "

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige