(Excel) Pivot über alle Tabellenblätter
Hallo liebe Excel-Freunde!
Ich habe eine kleine Frage bzgl. Pivot Tabellen:
Ich arbeite als Praktikant in einem Produktionsbetrieb und dokumentiere täglich Störzeiten und -häufigkeiten in einer Excel Tabelle.
Jeden Tag wird ein neues (mit aktuellem Datum), aber vom Aufbau her identisches Tabellenblatt benutzt (Kopie von Vorlage).
Am Ende des Monats erstelle ich eine einseitige Übersicht, in der ich alle Ereignisse summiert aufliste (z.B.: Maschine X stand Y Mal für insgesamt Z Minuten (das ist jetzt nur ein simples Beispiel)).
Nun gibt es bei Pivot Tabellen die Option, mehrere Konsolidierungsbereiche festzulegen. Schön und gut, muss ich aber trotzdem alles manuell festlegen/hinzufügen.
Nun zu meiner Frage:
Gibt es die Möglichkeit, den Bereich der Pivot Tabelle automatisch über ALLE Tabellenblätter festzulegen, ohne das ich jedes einzelne extra hinzufügen muss?
In der Praxis wäre es also so, dass ich z.b. morgen ein neues Tabellenblatt hinzufüge, und dieses automatisch Teil der "Bilanz" ist.
Würde mich sehr über Ratschläge und Tipps freuen.
Viele Grüße,
Victorianer
Ich habe eine kleine Frage bzgl. Pivot Tabellen:
Ich arbeite als Praktikant in einem Produktionsbetrieb und dokumentiere täglich Störzeiten und -häufigkeiten in einer Excel Tabelle.
Jeden Tag wird ein neues (mit aktuellem Datum), aber vom Aufbau her identisches Tabellenblatt benutzt (Kopie von Vorlage).
Am Ende des Monats erstelle ich eine einseitige Übersicht, in der ich alle Ereignisse summiert aufliste (z.B.: Maschine X stand Y Mal für insgesamt Z Minuten (das ist jetzt nur ein simples Beispiel)).
Nun gibt es bei Pivot Tabellen die Option, mehrere Konsolidierungsbereiche festzulegen. Schön und gut, muss ich aber trotzdem alles manuell festlegen/hinzufügen.
Nun zu meiner Frage:
Gibt es die Möglichkeit, den Bereich der Pivot Tabelle automatisch über ALLE Tabellenblätter festzulegen, ohne das ich jedes einzelne extra hinzufügen muss?
In der Praxis wäre es also so, dass ich z.b. morgen ein neues Tabellenblatt hinzufüge, und dieses automatisch Teil der "Bilanz" ist.
Würde mich sehr über Ratschläge und Tipps freuen.
Viele Grüße,
Victorianer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 214416
Url: https://administrator.de/contentid/214416
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Victorianer,
habe ich Dir eine mögliche Lösung in ein Demo-Dokument gepackt.
Die Vorgehensweise im Dokument ist diese:
Hoffe das war so richtig von mir interpretiert ...
Der Code im Sheet sieht folgendrmaßen aus:
Das wichtigste für dich steht ab Zeile 11. Zeile 11 bestimt welche Sheets einbezogen werden. In Zeile 13 wird ganz hinten in Excel R1C1-Schreibweise der Zellenbereich festgelegt in dem in jedem Sheet die Daten liegen. Zeile 16 musst du je nach Art der Consolidierung die Parameter noch anpassen. In der VBA Hilfe zu dieser Funktion steht mehr dazu. Zu guter letzt wird in Zeile 17 die Pivot-Tabelle mit dem Namen
Grüße Uwe
habe ich Dir eine mögliche Lösung in ein Demo-Dokument gepackt.
Die Vorgehensweise im Dokument ist diese:
- Erstellen einer Konsolidierungstabelle mit VBA die automatisch alle Tabellenblätter außer dem ersten als Quellen nimmt
- Die Pivot-Tabelle hat diese Konsolidierungtabelle als Datenquelle
- Der Button fügt zur Demo ein weiteres Sheet hinzu, konsolidiert alle Sheets und aktualisiert die Pivot-Tabelle in einem Schritt
Hoffe das war so richtig von mir interpretiert ...
Der Code im Sheet sieht folgendrmaßen aus:
Sub consolidate()
'Worksheet hinzufügen
Worksheets(Worksheets.Count).Copy After:=Worksheets(Worksheets.Count)
Worksheets(1).Select
Dim sheet1 As Worksheet
Set sheet1 = Worksheets(1)
Dim i As Integer
ReDim sArray(1 To 1)
i = 1
For f = 2 To Worksheets.Count
ReDim Preserve sArray(1 To i)
sArray(i) = Worksheets(f).Name & "!R1C1:R5C3"
i = i + 1
Next
sheet1.Range("A2").consolidate Sources:=(sArray), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
sheet1.PivotTables("PivotTable1").RefreshTable
End Sub
PivotTable1
aktualisiert.Grüße Uwe