Microsoft Excel

Herbers Excel/VBA-Archiv

Pivot mit VBA | Herbers Excel-Forum


Betrifft: Pivot mit VBA von: Excel-Beginner
Geschrieben am: 26.01.2012 15:12:55

Hallo Zusammen,

ich versuche, per Makro eine Pivottabelle zu erstellen.
In der Zeilenbeschriftung soll Hersteller, Typ, Modell sein. Bei den Werten soll die Leasing-Nummer angezeigt werden (als Anzahl). In der Spalte soll der Status erscheinen.

Ich zeichne das mit dem Makrorekorder auf, allerdings kommt dann der Laufzeitfehler 5 (ungeültige Prozeduraufruf oder ungültiges Argument.

Habe die Tabelle hochgeladen, aus dem 1. Sheet müsste die Pivot gezogen werden.
https://www.herber.de/bbs/user/78607.xlsx

Kann jemand helfen?
Danke u. Gruss, Andreas

p.s. hier der Text des Makros:

Sub FleetMixProfessional()
'
' FleetMixProfessional Makro
'

'
    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
    Sheets("Tabelle1").Select
    Range("A2").Select
    Application.CutCopyMode = False
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Tabelle1!Z1S1:Z175S167", Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:="Tabelle4!Z3S1", TableName:="PivotTable2", _
        DefaultVersion:=xlPivotTableVersion12
    Sheets("Tabelle4").Select
    Cells(3, 1).Select
    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Hersteller")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Typ")
        .Orientation = xlRowField
        .Position = 2
    End With
    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Modell")
        .Orientation = xlRowField
        .Position = 3
    End With
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
        "PivotTable2").PivotFields("Leasing-Nr."), "Summe von Leasing-Nr.", xlSum
    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Summe von Leasing-Nr." _
        )
        .Caption = "Anzahl von Leasing-Nr."
        .

Function = xlCount
    End With
    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Status")
        .Orientation = xlColumnField
        .Position = 1
    End With
End Sub

  

Betrifft: AW: Pivot mit VBA von: JoWE
Geschrieben am: 26.01.2012 19:13:36

Hallo Andreas,
so vllt (allerdings XL2003!!):

Sub FleetMixProfessional()
    Dim sh1, sh2 As Worksheet
    Set sh1 = Sheets("Tabelle1")
    Set sh2 = Sheets("Tabelle2")
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        sh1.Range("A1:FJ175")).CreatePivotTable TableDestination:= _
        sh2.Range("A1"), TableName:="PivotTable2"
    With sh2.PivotTables("PivotTable2").PivotFields("Hersteller")
        .Orientation = xlRowField
        .Position = 1
    End With
    With sh2.PivotTables("PivotTable2").PivotFields("Typ")
        .Orientation = xlRowField
        .Position = 2
    End With
    With sh2.PivotTables("PivotTable2").PivotFields("Modell")
        .Orientation = xlRowField
        .Position = 3
    End With
    sh2.PivotTables("PivotTable2").AddDataField sh2.PivotTables( _
        "PivotTable2").PivotFields("Leasing-Nr."), "Summe von Leasing-Nr.", xlSum
    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Summe von Leasing-Nr.")
        .Caption = "Anzahl von Leasing-Nr."
        .
Function = xlCount
    End With
    With sh2.PivotTables("PivotTable2").PivotFields("Status")
        .Orientation = xlColumnField
        .Position = 1
    End With
End Sub


Gruß
Jochen


  

Betrifft: AW: Pivot mit VBA von: Excel-Beginner
Geschrieben am: 27.01.2012 07:52:20

Hallo Jochen, vielen Dank erstmal für die schnell Hilfe.
Hat noch nicht ganz funktioniert. Was soll mir XL2003 sagen?
Wenn ich das Makro Schritt für Schritt teste, kommt bei der 5. Zeile (ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _.... folgende Fehlermeldung:
Laufzeitfehler 1004 (Anwendungs- oder objektdefinierter Fehler).

Vielen Dank nochmals u. Gruss,
Andreas


  

Betrifft: AW: Pivot mit VBA von: JoWE
Geschrieben am: 27.01.2012 14:04:50

ich hatte das Makro für Excel 2003 getestetet.
Augenscheinlich läuft das unter 2010 nicht...
Pech.


  

Betrifft: AW: Pivot mit VBA von: jowe
Geschrieben am: 27.01.2012 14:31:47

Hallo nochmal,

gehts denn so:
https://www.herber.de/bbs/user/78625.xlsm
Gruß
Jochen