Set rngData = Workbooks(“DataList5.xlsm”).Worksheets(“Sales”).Range(“Database”)
Set rngCriteria = ThisWorkbook.Worksheets(“Sales”).Range(“Criteria”)
Set rngExtract = ThisWorkbook.Worksheets(“Sales”).Range(“Extract”)
‘Extract data with Advanced Filter
rngData.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=rngCriteria, _
CopyToRange:=rngExtract, _
Unique:=False
End Sub
The event procedure defines three object variables referring to the DatabaseCriteria, and Extract
ranges. It then runs the AdvancedFiltermethod of the DatabaseRange object.
Data Form
Excel has a built-in form that you can use to view, find, and edit data in a list. The feature is not available
on the Ribbon, so you need to add it to the Quick Access menu if you want to use it through the user
interface. Right-click the Quick Access menu and choose Customize Quick Access Toolbar to open the
dialog box shown in Figure 6-12. Select the Customization button, if necessary, and from the drop-down
above the left list box, select Commands Not in the Ribbon. Find the Form command and add it to the
Quick Access menu.
Figure 6-12
This feature can be used with a normal range of data or a Table. If you select a single cell in the data, or
select the entire list, and click theForm button, you will see a form like the one in Figure 6-13.
If you record this process, you will get code like the following:
Range(“B2”).Select
ActiveSheet.ShowDataForm
158
Chapter 6: Data Lists
Pdf rotate all pages - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
pdf reverse page order preview; how to rotate pdf pages and save
Pdf rotate all pages - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
pdf reverse page order; how to rotate one page in pdf document
Figure 6-13
If your list starts in A1, and you record selecting the first cell and showing the Data Form, then the
recorded macro works. If your list starts in any cell other than A1, and you record while selecting the
top-left corner and showing the Data Form, the recorded macro will give an error message when you try
to run it. You can overcome this problem by applying the name Databaseto your list.
Summary
As you have seen, the AutoFilter and Advanced Filter features can be combined with VBAcode to pro-
vide flexible ways for users to extract information from data lists. By combining these features with
ActiveX controls, such as combo boxes and command buttons, you can make them readily accessible to
all levels of users. You can use the macro recorder to get an indication of the required methods and adapt
the recorded code to accept input from the ActiveX controls.
If you don’t work entirely with U.S. date and number formats, the Data Form feature
is quite dangerous when displayed by VBAcode using the ShowDataFormmethod.
The Data Form, when invoked by VBA, displays dates and numbers only in U.S.
format. On the other hand, any dates or numbers typed in by a user are interpreted
according to the regional settings in the Windows Control Panel. Therefore, if you
set the date in the British format (dd/mm/yyyy), when you use the Data Form, the
dates become corrupted. See Chapter 25 for more details.
159
Chapter 6: Data Lists
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
NET example for how to delete several defined pages from a PDF document Dim detelePageindexes = New Integer() {1, 3, 5, 7, 9} ' Delete pages. All Rights Reserved
reverse pdf page order online; save pdf rotated pages
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
doc2.InsertPages(pages, pageIndex) ' Output the new document how to use VB to insert an empty page to a specific location of current PDF file All Rights Reserved
rotate pdf page few degrees; saving rotated pdf pages
Tables provide a way to formalize data structures and tools to maintain data lists. Sorting and filtering is
facilitated when the data is in a table. The Tables ListObjectobject makes it easier to generate VBAref-
erences to your data and to manipulate it programmatically.
However, you need to take care if you work with non-U.S. date formats. You need to bear in mind that
VBArequires you to use U.S. date formats when you compare ranges of dates using AutoFilter. If this
interests you, you should check out Chapter 21, which deals with international programming issues.
Also, when you want to detect which rows have been hidden by AutoFilter, you need to be aware that
the Hiddenproperty of the Rangeobject can only be applied to entire worksheet rows.
Advanced Filter provides the VBAprogrammer with very powerful filtering in Excel. You can set up
much more complex criteria with Advanced Filter than you can with AutoFilter, and you can copy fil-
tered data to a specified range. You can also use Advanced Filter to copy filtered data from one work-
book to another.
The Data Form feature makes it very easy to set up a data maintenance macro. However, you should
apply the name Databaseto your data list if the top-left corner of the list is not in the A1 cell.
160
Chapter 6: Data Lists
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
1. public void DeletePages(int[] pageIndexes). Description: Delete specified pages from the input PDF file. Parameters: All Rights Reserved.
how to reverse page order in pdf; rotate pages in pdf and save
C# PDF Page Insert Library: insert pages into PDF file in C#.net
how to merge PDF document files by C# code, how to rotate PDF document page to insert empty pages to a specific location of current PDF file. All Rights Reserved
rotate single page in pdf file; rotate one page in pdf reader
PivotTables
PivotTables are an extension of the cross tabulation tables used in presenting statistics, and can be
used to summarize complex data in a table format. An example of cross tabulation is a table show-
ing the number of employees in an organization, broken down by age and sex. PivotTables are
more powerful and can show more than two variables, so they could be used to show employees
broken down by age, sex, and alcohol, to quote an old statistician’s joke.
The input data for a can come from an Excel worksheet, a text file, an Access database, or a wide
range of external database applications. PivotTables can handle up to 256 column or row fields, if
you can interpret the results. They can perform many types of standard calculations, such as sum-
ming, counting, and averaging. They can produce subtotals and grand totals.
Data can be grouped as in Excel’s outline feature, and you can hide unwanted rows and columns.
You can also define calculations within the body of the table. PivotTables are also very flexible if
you want to change the layout of the data and add or delete variables. You can create PivotCharts
that are linked to your PivotTable results in such a way that you can manipulate the data layout
from within the chart.
PivotTables are designed so that you can easily generate and manipulate them manually. If you
want to create many of them, or provide a higher level of automation to users, you can tap into the
Excel object model. This chapter examines the following objects:
PivotTables
PivotCaches
PivotFields
PivotItems
PivotCharts
The PivotTable feature has evolved more than most other established Excel features. With each
new version of Excel, PivotTables have been made easier to use and provided with new features.
Some of these capabilities and the code covered in this chapter might not work in older versions 
of Excel.
VB.NET PDF - WPF PDF Viewer for VB.NET Program
Users can rotate PDF pages, zoom in or zoom out PDF pages and WPF PDF Viewer for VB.NET is a PDF utility annotation rectangle, polygon and so on are all can be
how to rotate just one page in pdf; reverse page order pdf online
C# WPF PDF Viewer SDK to view PDF document in C#.NET
Compatible with all Windows systems and supports .NET Framework 2.0 & above versions. A powerful .NET WPF component able to rotate one PDF page or whole PDF
how to rotate one page in a pdf file; how to rotate pdf pages and save permanently
Creating a PivotTable Report
PivotTables can accept input data from a spreadsheet, or from an external source such as an Access
database. When using Excel data, the data should be structured as a data list, as explained at the begin-
ning of Chapter 6, although it is also possible to use data from another PivotTable or from multiple con-
solidation ranges. The columns of the list are fields and the rows are records, apart from the top row that
defines the names of the fields.
Take the Table in Figure 7-1, containing data for 2006 and 2007, as your input data. It is not necessary to
have your data in a Table, but the Table provides tools that help maintain and identify the data.
Figure 7-1
As usual in Excel, it is a good idea to have an identifier for your data range that you can use as a refer-
ence in your code. You could define a name for the data range. Alternatively, you can create a Table to
contain the data. In this case the data is placed in Table1. You can then refer to the Table in your code.
You want to summarize NumberSold within the entire time period by Customer and Product. With the
cell pointer in the data list, select the Insert tab of the Ribbon and click the PivotTable button in the
Tables group. You will see the dialog box shown in Figure 7-2, which will show the name of the Table as
the data source.
When you click OK, you will see a screen like that in Figure 7-3. Drag the Customer field to the Row
Labels area, the Product field to the ColumnLabels area, and the NumberSold field to the Values area, as
shown in Figure 7-3. As you drag the fields, the PivotTable Report will be constructed in the worksheet.
162
Chapter 7: PivotTables
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
Compatible with all Windows systems and supports .NET Framework 2.0 & above versions. Able to rotate one PDF page or whole PDF while in viewing.
permanently rotate pdf pages; rotate all pages in pdf and save
C# TIFF: How to Rotate TIFF Using C# Code in .NET Imaging
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB TIFFPage)doc.GetPage(0); page.Rotate(RotateOder.Clockwise90); doc.Save(@"C:\rotate.tif All Rights Reserved
reverse page order pdf; rotate pdf page
Figure 7-2
Figure 7-3
If you use the macro recorder to create a macro to carry out this operation, it will look similar to the fol-
lowing code:
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
“Table1”, Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:=”Sheet1!R3C1”, TableName:=”PivotTable1”, _
DefaultVersion:= xlPivotTableVersion12
163
Chapter 7: PivotTables
Sheets(“Sheet1”).Select
With ActiveSheet.PivotTables(“PivotTable1”).PivotFields(“Customer”)
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables(“PivotTable1”).PivotFields(“Product”)
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables(“PivotTable1”).AddDataField ActiveSheet.PivotTables( _
“PivotTable1”).PivotFields(“NumberSold”), “Sum of NumberSold”, xlSum
The code creates a new worksheet, which becomes the active sheet. It then uses the Addmethod of the
PivotCachescollection to create a new PivotCachePivotCachesare discussed later. It next uses the
CreatePivotTablemethod of the PivotCacheobject to create an empty PivotTable in the new work-
sheet, starting in the R3C1 (or A3) cell, and names the PivotTable PivotTable1. The code also uses a
parameter declaring the DefaultVersion. The source range is specified as the Table range.
The PivotTable is set up to start in A3 to leave room for page fields, which are also called Report Filters
in Excel 2007, above the Table. Page fields are discussed later.
The Customer field is defined to be a row field and the Product field to be a column field. The Position
property ranks multiple row fields or column fields, which is not necessary here. Finally, NumberSoldis
added as a data field, which means that it appears in the body of the Table where it is to be summed.
As it stands, the recorded code is very inflexible. It adds a new worksheet and assumes that it is named
Sheet1. It applies the name PivotTable1 and then depends on that name in the subsequent code. The
code can be generalized and tidied up as shown:
Sub CreatePivotTable()
Dim wks As Worksheet
Dim pvc As PivotCache
Dim pvt As PivotTable
‘Add new worksheet
Set wks = Worksheets.Add
‘Create PivotCache
Set pvc = ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=Sheet1.ListObjects(“Table1”).Range)
‘Create PivotTable
Set pvt = pvc.CreatePivotTable(TableDestination:=wks.Range(“A3”), _
DefaultVersion:=xlPivotTableVersion12)
‘Define fields in PivotTable
With pvt
With .PivotFields(“Customer”)
.Orientation = xlRowField
.Position = 1
End With
164
Chapter 7: PivotTables
With .PivotFields(“Product”)
.Orientation = xlColumnField
.Position = 1
End With
.AddDataField .PivotFields(“NumberSold”), “Sum of NumberSold”, xlSum
End With
End Sub
The SourceDataparameter of the Createmethod of the PivotCachescollection is very flexible. It
accepts a Rangeobject or a text address as well as a text reference to a Table. You have specified the Range
property of Table1. If you had assigned the name Databaseto the data, you could use the following:
SourceData:=”Database”)
The TableDestinationparameter of the CreatePivotTablemethod also accepts the Rangeobject
reference you used. If you are not concerned about the name of the PivotTable, you can leave out the
TableNameparameter and accept the default name.
PivotCaches
APivotCacheis a buffer, or holding area, where data is stored and accessed as required from a data
source. It acts as a communication channel between the data source and the PivotTable.
In Excel 2007, you can create a PivotCacheusing the Createmethod of the PivotCachescollection, as
seen in the recorded code. You have extensive control over what data you draw from the source when you
create a PivotCache. Particularly in conjunction with ADO (ActiveX Data Objects), which is demonstrated
at the end of this chapter, you can achieve high levels of programmatic control over external data sources.
Chapters 20 and 21 show you the great flexibility of ADO and other ways to handle external data sources.
You can use the techniques from those chapters to construct data sources for PivotTables.
You can also use a PivotCacheto generate multiple PivotTables from the same data source. This is more
efficient than forcing each PivotTable to maintain its own data source.
When you have created a PivotCache, you can create any number of PivotTables from it using the
CreatePivotTablemethod of the PivotCacheobject.
PivotTables Collection
You can use another method to create a PivotTable from a PivotCache, using the Addmethod of the
PivotTablescollection. If you have already created a PivotCache in your workbook and you want to
create a second PivotTable, you can use the following code:
Sub AddTable()
Dim pvc As PivotCache
Dim pvt As PivotTable
‘Access existing PivotCache
Set pvc = ActiveWorkbook.PivotCaches(1)
‘Add new PivotTable to PivotTables collection
165
Chapter 7: PivotTables
Set pvt = ActiveSheet.PivotTables.Add(PivotCache:=pvc, _
TableDestination:=Range(“A3”))
End Sub
There is no particular advantage to using this method compared with the CreatePivotTablemethod.
It’s just another thread in the rich tapestry of Excel.
PivotFields
The columns in the data source are referred to as fields. When the fields are used in a PivotTable, they
become PivotFieldobjects and belong to the PivotFieldscollection of the PivotTableobject. The
PivotFieldscollection contains all the fields in the data source and any calculated fields you have
added, not just the fields that are visible in the PivotTable report. Calculated fields are discussed later in
this section.
You can add PivotFields to a report using two different techniques. You can use the AddFieldsmethod
of the PivotTableobject, or you can assign a value to the Orientationproperty of the PivotField
object, as shown here:
Sub AddFieldsToTable()
‘Adds new fields to an existing PivotTable
‘Access existing PivotTable
With ActiveSheet.PivotTables(1)
‘Add new State field to rows
.AddFields RowFields:=”State”, AddToTable:=True
‘Add Date as new page field
.PivotFields(“Date”).Orientation = xlPageField
End With
End Sub
If you run this code on the example PivotTable, you will get the result shown in Figure 7-4.
The AddFieldsmethod can add multiple row, column, and page fields. These fields replace any exist-
ing fields, unless you set the AddToTableparameter to True, as in the previous example. However,
AddFieldscan’t be used to add or replace data fields. The following code redefines the layout of the
fields in the existing Table, apart from the data field:
Sub RedefinePivotTable()
‘Reorganize an existing PivotTable
Dim pvt As PivotTable
‘Access existing PivotTable
166
Chapter 7: PivotTables
Set pvt = ActiveSheet.PivotTables(1)
‘Specify arrangement of row, column and page fields
pvt.AddFields RowFields:=Array(“Product”, “Customer”), _
ColumnFields:=”State”, _
PageFields:=”Date”
End Sub
Figure 7-4
Note that you can use the Arrayfunction to include more than one field in a field location. The result is
shown in Figure 7-5.
You can use the Orientationand Positionproperties of the PivotFieldobject to reorganize the
Table. Positiondefines the hierarchy of fields within the Table, counting from the top level down. The
following code, added to the end of the RedefinePivotTablecode, would move the Customer fields
above the Product fields as shown in Figure 7-6, for example:
pvt.PivotFields(“Customer”).Position = 1
167
Chapter 7: PivotTables
Documents you may be interested
Documents you may be interested