AW: Daten auswerten per Pivot - umgruppieren
05.07.2020 17:41:31
fcs
Hallo Theri,
für eine optimale Auswertung per Pivot-Tabellenbericht müssen die Daten anders angeordnet sein.
https://www.herber.de/bbs/user/138786.xlsx
Mit dem folgenden Makro kannst du die Daten in die erforderliche Form umgruppieren.
Das Makro erstellt dabei eine neue Arbeitsmappe.
LG
Franz
'Makro in einem allgemeinen Modul in der persönlichen Makroarbeitsmappe speichern
Sub Umgruppieren()
Dim wks As Worksheet, wksNeu As Worksheet
Dim ZeiNeu As Long, zei1 As Long, zeiL As Long, spa As Long
Dim rngGrp As Range
Set wks = ActiveSheet
If MsgBox("Daten im aktiven Tabellenblatt """ & wks.Name _
& """ in einer neuen Arbeitsmappe umgruppiert anordnen?", _
vbQuestion + vbOKCancel, "Daten umgruppieren") = vbCancel Then Exit Sub
Application.Workbooks.Add Template:=xlWBATWorksheet
Set wksNeu = ActiveSheet
wksNeu.Cells(1, 1) = "Gruppe"
wksNeu.Cells(1, 2) = "Datum"
wksNeu.Cells(1, 3) = wks.Cells(1, 1)
ZeiNeu = 2
With Application
.ScreenUpdating = False
End With
With wks
Set rngGrp = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
For spa = 2 To .Cells(1, .Columns.Count).End(xlToLeft).Column
If InStr(.Cells(1, spa).Text, "SUM") = 0 Then
rngGrp.Copy wksNeu.Cells(ZeiNeu, 1)
wksNeu.Cells(ZeiNeu, 2).Resize(rngGrp.Rows.Count, 1).Value = _
wks.Cells(1, spa).Value
wksNeu.Cells(ZeiNeu, 2).Resize(rngGrp.Rows.Count, 1).NumberFormat = _
"DD.MM.YYYY"
rngGrp.Offset(0, spa - 1).Copy wksNeu.Cells(ZeiNeu, 3)
wksNeu.Cells(ZeiNeu, 3).Resize(rngGrp.Rows.Count, 1).NumberFormat = _
wks.Cells(2, 2).NumberFormat
ZeiNeu = ZeiNeu + rngGrp.Rows.Count
End If
Next
End With
With Application
.ScreenUpdating = True
End With
End Sub