Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Aus Pivot für jeden Datensatz ein Sheet erstellen

Aus Pivot für jeden Datensatz ein Sheet erstellen
stefan.hack@commerzbank.com
Hallo zusammen,
ich komme leider mit einem Problem nicht weiter.
Ich habe in einer Pivottabelle eine Übersicht über Regionsdaten. D.h. Spalte A hat in der Gesamtübersicht manchmal 7 oder auch nur 5 Regionen mit anschließenden Daten. Will sagen, die Regionsanzahl kann variieren.
Nun muss ich diese Pivotdaten nach Regionen aufgeteilt auf einzelne Sheets kopieren. D.h. ich habe hinterher z.B. 5 Shetts mit der Bezeichnung der Regionen.
ist das per VBA darstellbar? Hat jemand einen guten Tipp für mich?
Besten Dank und viele Grüße
Steve
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Aus Pivot für jeden Datensatz ein Sheet erstellen
Luschi
Hallo Steve,
man kann mit den Feldern & Inhalt von Pivottabellen per Vba gut umgehen und die entsprechenden Werte auch in andere Tabellen übertragen. Aber es ist nicht so einfach, von einer eigenen Mustertabelle den Vba-Code auf eine andere Pivottabelle zu übertragen.
Wenn Du also eine Mustertabelle mit Testdaten + Pivottabelle hier bereitstellst, könnte es schon was werden. Es muß aber der generelle Aufbau stimmig sein, die Anzahl der resultierenden Regionen kann dabei variabel sein - denn solche Infos kann man per Vba auslesen.
Gruß von Luschi
aus klein-Paris
Anzeige
Stichwort : PivotItems und ShowDetail _oT
08.12.2011 23:49:34
NoNet
_oT = "ohne Text"
VBA: Pivot : Pro Datensatz ein Sheet erstellen
09.12.2011 11:00:56
NoNet
Hallo steve,
jetzt bin ich wieder wach, gestern Nacht war mir das zu spät.
Hier ein VBA-Codebeispiel, wie man aus einer (einfachen) PIVOT-Tabelle des aktuellen Blattes die einzelnen Datenzeilen in ein jeweils entsprechend benamtes Blatt kopieren kann :
Sub AllePivotDetails_Separieren()
'PIVOT-Ergebnisse als separates Blatt separieren und Blatt benennen
'23.03./09.12.2011, NoNet - www.excelei.de
Dim rngZ As Range, strName As String
Dim pivAkt As PivotTable, wbAkt As Workbook
Dim lngLS As Long, lngPiv As Long
Set wbAkt = ActiveWorkbook
If ActiveSheet.PivotTables.Count > 0 Then
If MsgBox("Sollen jetzt aus der PIVOT-Tabelle jeweils einzelne Tabs erstellt werden ?" & _
_
vbLf & vbLf & "HINWEIS : Evtl. bestehende TABS werden zuvor gelöscht !!" & _
vbLf & vbLf & wbAkt.Path, vbYesNo + vbQuestion, "PIVOT-Tabelle sparieren") = vbYes  _
Then
'Sheets("PivotTable").Select 'Blatt mit PIVOT-Tabelle evtl. zuvor aktivieren
Set pivAkt = ActiveSheet.PivotTables(1)
pivAkt.ColumnGrand = False 'Zeile "Gesamtergebnis" ausblenden
lngLS = pivAkt.DataBodyRange.Column
'Meldungen abschalten, um bestehendes Blatt ohne Rückfrage zu löschen :
Application.DisplayAlerts = False
For Each rngZ In Intersect(Columns(lngLS), pivAkt.DataBodyRange)
lngPiv = lngPiv + 1
rngZ.ShowDetail = True 'Detailzeilen auf neues separates Blatt kopieren
If rngZ.Offset(, -1)  "" Then
strName = Left(rngZ.Offset(, -1), 31) 'Max. 31 Zeichen als  _
Tabellenblattname
Else
strName = "Piv. " & lngPiv
End If
On Error Resume Next            'falls ungültiger Blattname
Sheets(strName).Delete          'Evtl. bereits bestehendes Blatt löschen
ActiveSheet.Name = strName      'Blatt gemäß PIVOT-Zeile benennen
ActiveSheet.Move after:=Sheets(Sheets.Count) 'Blatt ganz an das Ende  _
verschieben
[A1].Select
Next
pivAkt.Parent.Activate 'Blatt der PIVOT-Tabelle wieder aktivieren
'Meldungen wieder einschalten, um bestehendes Blatt ohne Rückfrage zu löschen :
Application.DisplayAlerts = True
MsgBox "Fertig !"
End If
Else
MsgBox "Das aktuelle Blatt beinhaltet keine PIVOT-Tabelle !", vbOKOnly + vbCritical, _
"Trennung PIVOT-Tabelle nicht möglich !"
End If
End Sub
Falls es das Blatt mit dem entsprechenden Namen bereits gibt, wird dieses kompromisslos zuvor gelöscht.
Gruß, NoNet
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige