Solved

count of pivot tables in a workbook

Posted on 2010-09-06
9
808 Views
Last Modified: 2013-11-26
How to determine via vba the count of pivot tables (How many tables exist in a workbook ) in a workbook so that once can store there names in array(dynamic) and perform a series of operations
0
Comment
Question by:Rajnish_Sharma_ibm
  • 4
  • 2
  • 2
  • +1
9 Comments
 
LVL 50

Expert Comment

by:Ingeborg Hawighorst
ID: 33609500
Hello Rajnish,

the code below will count the pivot tables in all sheets of the active workbook.

cheers, teylyn
Sub CountPivotTables()
Dim ws As Worksheet
Dim i As Integer
i = 0
For Each ws In ActiveWorkbook.Worksheets
    For Each PivotTable In ws.PivotTables
        i = i + 1
    Next PivotTable
Next ws
Debug.Print i

End Sub

Open in new window

0
 
LVL 17

Expert Comment

by:calacuccia
ID: 33609503
Dim i as Long
Dim  wb as workbook
Dim ws as worksheet

i = 0
Set wb as Workbookds("MyWorkbook.xls")
For each ws in wb.Worksheets
   i = i + ws.PivotTables.Count
Next ws
MsgBox "There are " & i & " Pivot Tables in your workbook"
0
 
LVL 50

Expert Comment

by:Ingeborg Hawighorst
ID: 33609517
cal, just learned something. Thanks, teylyn
0
ScreenConnect 6.0 Free Trial

Discover new time-saving features in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI, app configurations and chat acknowledgement to improve customer engagement!

 
LVL 17

Expert Comment

by:calacuccia
ID: 33609524
PivotTables.Count?
0
 
LVL 59

Accepted Solution

by:
Chris Bottomley earned 125 total points
ID: 33609528
The following will return both the sheet names and pivot table names so you can address them appropriately as:

activeworkbook.sheets(arrPivots(arrIndex, 0))(.pivottables(arrPivots(arrIndex, 0))

Where arrindex is the index number within the array for the tables ... possibly via a loop.

Chris
Sub pivArr()
Dim arrPivots() As String
Dim arrIndex As Integer
Dim piv As Variant
Dim cnt As Integer
Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        cnt = cnt + ws.PivotTables.Count
    Next
    arrIndex = -1
    For Each ws In ThisWorkbook.Worksheets
        For Each piv In ws.PivotTables
            arrIndex = arrIndex + 1
            ReDim Preserve arrPivots(0 To cnt - 1, 1)
            arrPivots(arrIndex, 0) = ws.Name
            arrPivots(arrIndex, 1) = piv.Name
        Next
    Next
End Sub

Open in new window

0
 
LVL 50

Expert Comment

by:Ingeborg Hawighorst
ID: 33609663
@cal. precisely. I'm baby-stepping through VBA, as it is, spreading my "wisdom" where I can. LOL. Seeing the latest comment, I guess Chris has it nailed. Again. Cheers, Chris.
0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 33609691
>>> I'm baby-stepping through VBA, as it is, spreading my "wisdom" where I can

And trouncing me at almost every opportunity ... with your level of detail :o)

Chris
0
 

Author Closing Comment

by:Rajnish_Sharma_ibm
ID: 33609836
Thanks for speedy and accurate solution!
0
 
LVL 50

Expert Comment

by:Ingeborg Hawighorst
ID: 33610367
>> with your level of detail

You can take the girl out of Germany, but you can't take Germany out of the girl! :-))

enjoy your points!
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Excel format formula for currency 15 24
Msgbox tickler 11 26
Time difference between dates without weekend 16 29
Problem to file 5 16
When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
Do you use a spreadsheet like Microsoft's Excel?  Have you ever wanted to link out to a non excel file on your computer or network drive?  This is the way I found to do it!
This Micro Tutorial demonstrates in Microsoft Excel how to consolidate your marketing data by creating an interactive charts using form controls. This creates cool drop-downs for viewers of your chart to choose from.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question