• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 391
  • Last Modified:

2 Pivot Tables in VBA

Hi
I have a macro which, among other things, creates 2 pivot tables.  The source data for each is on different tabs and the resulting tables should be on different tabs.  I cheated and used the macro recorder to get the code, then copied it with some changes for the second one.

The first one works fine, but the second one gives "Run-time error: 5.  Invalid procedure call or argument".  I'm not sure why.  I thought, at first, that it might be that, having copied the code, it was trying to call both of them PivotTable1, so I changed the second to PivotTable2.  Everything else is the same other than my changing where the source data is and where the table destination is.

I'm awarding 500 points for a quick solution.

Thanks
Sarah

Sub CF_PivotTable()

'   CREATE A PIVOT TABLE FROM THE NON DISCOUNT INVOICES



    Sheets.Add
    ActiveSheet.Name = "Summary"
    
    Sheets("Summary list - all open items b").Select
    Range("A1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(0, 0).Select
    lRow = ActiveCell.Row

    
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Summary list - all open items b!R1C1:R" & lRow & "C11", Version:= _
        xlPivotTableVersion10).CreatePivotTable TableDestination:="Summary!R1C1", _
        TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10
    Sheets("Summary").Select
    Cells(1, 1).Select
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Net due dt")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("Amount in local cur."), _
        "Sum of Amount in local cur.", xlSum
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Status")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveWorkbook.ShowPivotTableFieldList = False
    ActiveCell.Offset(0, 1).Columns("A:C").EntireColumn.Select
    Selection.Style = "Comma"
    ActiveCell.Offset(1, 3).Range("A1").Select
    
        Sheets.Add

    
'   CREATE A PIVOT TABLE FROM THE DISCOUNT INVOICES


    ActiveSheet.Name = "Discount Summary"
    
    Sheets("Discount list - all open items").Select
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A1").Select
    Sheets("Summary list - all open items b").Select
    Rows("1:1").Select
    Selection.Copy
    Sheets("Discount list - all open items").Select
    ActiveSheet.Paste
    Range("A1").Select
    
    
    Sheets("Discount list - all open items").Select
    Range("A1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(0, 0).Select
    lRow = ActiveCell.Row

    
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Discount list - all open items!R1C1:R" & lRow & "C11", Version:= _
        xlPivotTableVersion10).CreatePivotTable TableDestination:="Discount Summary!R1C1", _
        TableName:="PivotTable2", DefaultVersion:=xlPivotTableVersion10
        
   
    Sheets("Discount Summary").Select
    Cells(1, 1).Select
    ActiveWorkbook.ShowPivotTableFieldList = True
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Net due dt")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("Amount in local cur."), _
        "Sum of Amount in local cur.", xlSum
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Status")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveWorkbook.ShowPivotTableFieldList = False
    Columns("B:D").Select
    Selection.Style = "Comma"
    Range("E3").Select
    


End Sub

Open in new window

0
ScuzzyJo
Asked:
ScuzzyJo
  • 2
1 Solution
 
TracyVBA DeveloperCommented:
What line do you get the error on?
0
 
Rory ArchibaldCommented:
On line 74 change the TableDestination argument to:
TableDestination:="'Discount Summary'!R1C1"


0
 
TracyVBA DeveloperCommented:
Also, can you post your workbook?
0
 
ScuzzyJoAuthor Commented:
Hi
Rory - thanks, it's working now....:-)

Broomee9 - sorry, Rory beat you to it.  I couldn't post the workbook anyway as it has confidential info in it, but thanks for trying.

Sarah
:-)
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now