Microsoft Excel

Herbers Excel/VBA-Archiv

Pivot via VBA erstellen


Betrifft: Pivot via VBA erstellen von: Falcosn
Geschrieben am: 21.01.2018 18:39:49

Hallo zusammen,

gerne würde ich einen VBA-Code erstellen, der er mir ermöglicht, per Makro eine Pivot-Tabelle in einem neuen Arbeitsblatt zu erstellen:

Soweit bin ich bis dato gekommen:

Sub PivoterstellenTest()

Dim Bereich As Range
Bereich = Worksheets("Bielefeld").Range(Worksheets("Bielefeld").Cells(4, 1), _
Worksheets("Bielefeld").Cells(10, 10))

Sheets.Add

    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
    SourceData:=Bereich, Version:=xlPivotTableVersion14).CreatePivotTable _
    TableDestination:="Tabelle5!R3C1", TableName:="PivotTable2", _
    DefaultVersion:=xlPivotTableVersion14
          
End Sub

Könnt Ihr mir eventuell weiterhelfen?
Tausend Dank vorab!

Beste Grüße
Falcosn

  

Betrifft: AW: Pivot via VBA erstellen von: fcs
Geschrieben am: 22.01.2018 02:25:36

Hallo Falcosn,

hier ein Grundgerüst.

Für Ergänzungen zeichnest die Aktionen ambesten mit dem Makro-Rekorder auf und baust es dann passend in mein Makro ein.

Gruß
Franz

Sub PivoterstellenTest()

    Dim Bereich As Range
    Dim wksData As Worksheet, wksPivot As Worksheet
    Dim wkb As Workbook
    Dim pvTab As PivotTable, pvField As PivotField
    Set wkb = ActiveWorkbook
    
    Set wksData = wkb.Worksheets("Bielefeld")
    With wksData
        Set Bereich = .Range(.Cells(4, 1), .Cells(10, 10))
    End With
    
    'leeres Tabellenblatteinfügen
    Set wksPivot = wkb.Worksheets.Add(After:=wksData)
    
    'Pivotberiht nlegen
    Set pvTab = wkb.PivotCaches.Create(SourceType:=xlDatabase, _
        SourceData:=Bereich).CreatePivotTable _
        (TableDestination:="'" & wksPivot.Name & "'!R3C1")
             
    With pvTab
        'Berichtslayout in Tabellenformat anzeigen
        .RowAxisLayout xlTabularRow
    
        'Berichtsfeld einfügen
        Set pvField = .PivotFields("SPa 02")
        With pvField
            .Orientation = xlPageField
            .Position = 1
        End With
        
        'Zeilenfeld einfügen
        Set pvField = .PivotFields("SPa 01")
        With pvField
            .Orientation = xlRowField
            .Position = 1
        End With
        Set pvField = .PivotFields("SPa 04")
        With pvField
            .Orientation = xlRowField
            .Position = 2
        End With
        
        'Spaltenfeld einfügen
        Set pvField = .PivotFields("SPa 03")
        With pvField
            .Orientation = xlColumnField
            .Position = 1
        End With
        
        'Feld im Datenbereih einfügen
        Set pvField = .PivotFields("SPa 10")
        .AddDataField pvField, "Summe von SPa 10", xlSum
        Set pvField = .DataFields("Summe von SPa 10")
        pvField.NumberFormat = "#,##0.0;-#,##0.0;0.0"
    
    End With
End Sub



  

Betrifft: AW: Pivot via VBA erstellen von: Falcosn
Geschrieben am: 22.01.2018 10:39:20

Hallo lieber Franz,

vielen lieben Dank für die sensationelle Hilfe!
Hab viel gelernt!

Hat alles geklappt!

Beste Grüße
Falcosn


Beiträge aus dem Excel-Forum zum Thema "Pivot via VBA erstellen"