Create VBA for selecting a slicer selection - excel

I want to use my excel and pivot data as a template. Therefore, all linked data to pivot tables and slicers are emptied when the template is created. After generating the template my slicer setting is lost. Is there any way to make a mandatory and permanent selection for pivot tables? Can you suggest the VBA code?
I want to select different departments within my "Department (Name) Column. For instance a department named "Public Amenities" within the "public Amenities sheet.
Thanks!
enter image description here

Assuming you don't even know where to start, I would suggest first you use the macro recorder to create a slicer, and select some items.
You could use something like this:
ActiveWorkbook.SlicerCaches("NameFromSlicer").SlicerItems("NameFromItem").Selected = True
To select a specific item in a previously created slicer.
And also
ActiveWorksheet.PivotTables("NameFromPT").Slicers.Add
To add a slicer. Note you will have to give the paramethers to the "Add" method.

Related

How can I generate a pivot table using this data?

I have this table:
Is it possible to make a pivot table to present the information like this?:
Thanks!
Sure it's possible. As shown in your example, you just need to change the special character "✔️" by the number 1 using "ctrl + f". Then insert a Pivot Table with the data. And finally, create a new column named TOTAL and add the "=sum()" formula to count the items from each row. Something like that:
You are going to need to move this data from the word doc you are using into an Excel worksheet, in order to generate a pivot table.
format your data like this in Excel
To start out creating a pivot table, make sure that all rows and columns are selected and record (row) must not be obscure or elusive and must be making sense. Navigate to Insert tab, click PivotTable.
You will reach Create Pivot Table dialog box. Excel fills in data range from first to last selected columns and rows. You can also specify any external data source to be used. Finally choose worksheet to save the pivot table report.
The pivot table should appear. You can then populate this table with data fields which will pop up on the right hand side. Enable the fields you wish to compare in the pivot table report.

How to combine two worksheets (with different data between them) into one Pivot table?

I have one sheet that I manually enter quality scores on that looks like this
|Agent Name|Month|Quarter|Year|Quality Form|Score|
and another sheet that has production data (call times and goals)
|Agent Name|Month|Quarter|Year|Talk Time|# Calls|Call Goal|
I am trying to make a Pivot table (with slicers) that provides data that looks like this (the slicers would be for the month, quarter, year, or employee name)
|Agent Name|Score|Call Goal|
Tried messing with slicers. Tried consolidating tables. Tried using the data model. Tried using relationships (it kept telling me it needed unique values)
You could use the Power Pivot add-in to load both your tables into the Data Model (Excel -> tab "Power Pivot" -> button "Add to Data Model"), define the relationship between them (Power Pivot for Excel -> tab "Design" -> button "Create Relationship") and after that create your desired PivotTable in a new sheet (Power Pivot for Excel -> tab "Home" -> button "PivotTable").
Don't see a tab "Power Pivot"? Enable the add-in:
From the File menu, select Options, and then Add-Ins.
In the "Manage" box, select COM Add-ins, and then click Go....
Check the box next to Microsoft Office PowerPivot for Excel 2013, and then click OK.
As you mentioned already, you do need at least one of the tables to contain merely unique keys. Don't have it? Create one by combining multiple columns as a new column. Assuming each agent only occurs as a record in your tables once per month/year, you could use Power Pivot to concatenate a unique key into a new column with a formula like:
=Table1[Agent Name]&Table1[Month]&Table1[Year]
Do the same in Table 2:
=Table2[Agent Name]&Table2[Month]&Table2[Year]
Now, you can create a relationship between those 2 newly created columns and pivot as much as you want in Excel. Let us know how it works out!

How to create a list of all ticked/non-ticked filter in an excel pivot table

This, I hope, is a really simple question but it might not be possible.
In excel, I have used multiple filters in a pivot table, I now want to create a list of the options ticked from the various filters.
How can I create a list/copy all the ticked (or un-ticked) boxes. I have around 800 filters with about 250 boxes ticked.
The Manual approach:
Select a cell in the PivotTable. Then from the PivotTable Tools>Analyze tab use the Select icon to select the entire PivotTable. Copy it and paste it somewhere else. Drag every field out of it, leaving just the Customers field in it as a Rows field. There's your list.
If you add a slicer, and connect it to both PivotTables, then any changes to the Customer field in your original Pivot will flow through to this new one.
The VBA Approach:
See my UDF at https://superuser.com/questions/1254703/add-slicer-selections-to-sheet-in-a-list-excel-vba/1255885#1255885
And if you want a way to 'recall' a filter, then check out my answer here:
Pivotfields multiple filter

Copy Filters from one PowerPivot PivotTable to another

I have 2 PivotTables that were created from PowerPivot connections. I would like the second PivotTable to change based on a selection the user makes on the first PivotTable. I have some VBA background, so you don't need to write the whole code but point me to the right functions/structure.
If you use slicers, you can simply link both tables to the same set of slicers. You can even have multiple copies of each slicer.
It's the same in all versions of Excel since 2010. Here's a link.
Edit: Adding information from my comment below here.
You can use this technique even when you're explicitly using a filter on the pivot table, whether by adding a field to the Filters section, or by putting that field on the row/column labels and then limiting the selection based on that row/column header drop down. You can mix and match these as well, with Pivot1 having the field in question in the Filters section, and Pivot2 having the field in the Rows section.
Just create your two pivot tables as normal, and then connect both to the same slicer. This slicer can be hidden on another sheet that is not displayed to the end users. This solution is much more expedient than the VBA solutions I've seen.

How to select entire excel spreadsheet for pivot table?

I want to be able to select and reference all of the tabs in my excel spreadsheet (to get totals of everything), but the data source only allows one tab to be selected... is there a way to select and use the entire workbook in the pivot table?
Thank you!
You actually just have a data formatting problem. You're using tabs to separate devices by departments instead of simply creating a department field/column and putting everything in one tab. The data was likely delivered to you that way, but don't let the delivery format define the true working format of the data.
Combine everything in one tab, and then you'll be able to use the data in a pivot table just fine.
If you have more data than will fit in a tab, put it in a database such as MS Access, MS SQLServer or mySQL, and then tell excel to use the database as the pivot table source.
I think Jonathan M has the best answer, but here's a way to do it using SQL that I've used successfully.
I don't know any easy way of doing this, but you could write a macro to copy and paste all your existing sheets onto a single new sheet (assuming there's enough room on a single sheet).
In 2007 Multiple Consolidated Ranges isn't in the default pivot table window. You need to create your pivot table, click on it, hit Alt + D, then P. Click back to step one and you'll have the option for multiple consolidated ranges.
Select the data on any of the one sheet and hit Alt D > P. It will show you Step 1 of 3 for PivotTable Wizard. Now select Multiple Consolidation Ranges and hit Next.
Select and add different fields from different tabs and it will create a consolidated range for your PivotTable and then you can run your PivotTable based on data located on different tabs of sheet at the same time.
Hope it helps.

Resources