231
http://support.microsoft.com/support/kb/articles/q161/3/46.asp
XL97:  How to Determine Which Items Are Selected in a ListBox
http://support.microsoft.com/support/kb/articles/q165/5/01.asp
XL97:  Returning Values from ListBox Displaying Multiple Columns
http://support.microsoft.com/support/kb/articles/q165/9/35.asp
XL97:  How to Display a ComboBox List when UserForm is Displayed
http://support.microsoft.com/support/kb/articles/q165/6/32.asp
XL97: How to Remove All Items from a ListBox or ComboBox
13.2 MULTIPAGE CONTROL
13.2.1 Specifying The Starting Page In A MultiPage Control
The default starting page on a MultiPage control is the first page.  You can change pages by
setting the Value property of the MultiPage control.  The page indices start at 0, so to switch from
the first page to the second page you do
MultiPage1.Value = 1
13.2.2 Setting The Displayed Page Of A MultiPage UserForm
Object
TheValue property of a MultiPage object defines the active page, where 0 is the first page, 1 is
the second page and so forth. To activate the second page use a statement like:
Userform1.MultiPage1.Value = 1
To open on the first page:
Userform1.MultiPage1.Value = 0
13.2.3 How To Add Additional Pages To A MultiPage Tab In A
UserForm
The default is 2 pages for a MultiPage tab on a userform. Right Click on the MultiPage and
select "New Page" to add additional pages.
13.2.4 Activating Page On A UserForm's MultiPage
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#
save pdf rotated pages; rotate single page in pdf file
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
rotate pdf pages on ipad; save pdf after rotating pages
232
Use theValue property to specify which page should be displayed:
.MultiPage1.Value = 2
'The page value is zero based:  page 1 = 0.  The above code activates page 3
13.3 BUTTONS AND CHECKBOXES
13.3.1 Putting OK and Cancel Buttons On UserForms
To put OK and Cancel buttons on your userform, do the following:
Draw two command buttons on the form
Change the text in the buttons to OK and Cancel
Double click on one of the buttons to get to the userform's code module
Assuming that the OK button is named CommandButton1 and the Cancel
button is named CommandButton2, put the following code in the userform's
module:
Private Sub CommandButton1_Click()
'hide the userform so that code execution will continue
UserForm1.Hide
'set bContinue to indicate that the OK button was selected
bContinue = True
End Sub
Private Sub CommandButton2_Click()
'hide the userform so that code execution will continue
UserForm1.Hide
'set bContinue to indicate that the Cancel button was selected
bContinue = False
End Sub
In a regular module declare a public variable at the top of the module with the
following statement
Public bContinue As Boolean
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
rotate pdf pages and save; rotate pdf page few degrees
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
pdf save rotated pages; rotate pdf pages individually
233
Put the following code in the module to display the form, assuming it is named
UserForm1
Sub Using_OK_Cancel_Buttons()
'display the userform
UserForm1.Show
'test the value of bContinue to determine which button was selected
If bContinue Then
MsgBox "OK selected"
Else
MsgBox "Cancel selected"
End If
'remove the form from memory when done using
Unload UserForm1
End Sub
13.3.2 How To Associate Code With A Button On A User Form
When you double click on a userform button while in the VBA editor, the editor will
automatically create and display the 'click event' subroutine for that button.  If you have not
assigned a name to the button, you will see something like 'command button1 Click'.  You can
enter any code you wish within the click event, or call up another subroutine.  The code will
execute when the button is 'clicked' once you run your program.  That's all there is to it!
For other controls on a userform, double click on them will display the default procedure
associated with the control.  You can then select other procedures that are associated with a given
control from the drop downs that are displayed on the userform's code module.
If the code window doesn't come up when you first double click on it, click off the control and
then double click on the control again.
In summary:
Create the button
Use the properties window to give it a good name
Right click on the button and choose the View Code command.  Code like the
following will appear
Private Sub CommandButton1_Click()
End Sub
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 rotate just one page in pdf; rotate pages in pdf expert
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
pdf rotate single page and save; how to rotate all pages in pdf at once
234
Put whatever code you want to run when the button is clicked in this macro.
13.3.3 Making Buttons On UserForms Do What You Want
When you double click on the control while in the VBA editor, the editor will automatically
create and display the 'click event' subroutine for that button. If the code window doesn't come
up, click off the control and then double click on the control again.
For a button, the click event is the default and will be in the windows.  Additional events are in
the upper right dropdown.  If you have not assigned a name to the button you will see something
like 'command button1 Click'.  You can enter any code you wish within the click event, or call up
another subroutine.  The code will execute when the button is 'clicked' once you run your
program.
13.3.4 Grouping Option Buttons With or Without a Frame
You can group option buttons together by including them within a frame.  All of the option
button must be within the frame.  Only one button within the frame can be on at any time.  All
buttons outside of a frame act as a group, with only one button being active.
You can also assign option buttons to groups.  This allows buttons to act as if they were in a
frame, without the frame. Only one button in a group can be active at a time.
To assign buttons to a group, right click on each option button and select properties.  Then assign
a unique name for each set of buttons in the group name property
13.3.5 How To Check How Many CheckBoxes Are Clicked
Here's one way to do it (this code goes in the userform's code module):
Private Sub CommandButton1_Click()
Dim ctlControl As Control
Dim lNumChecked As Long
For Each ctlControl In UserForm1.Controls
If TypeOf ctlControl Is MSForms.CheckBox Then
If ctlControl.Value Then _
lNumChecked = lNumChecked + 1
End If
Next ctlControl
MsgBox Cstr(lNumChecked) & " checkboxes were checked."
End Sub
13.4 USING THE REFEDIT CONTROL
13.4.1 Using The RefEdit Control On A Userform
The RefEdit control provides the functionality to fill an input box with the address of a range by
clicking a worksheet and selecting the range.
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
pdf reverse page order online; reverse pdf page order 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 save a pdf after rotating pages; rotate pages in pdf
235
To use the RefEdit control in your project, click References on the Tools menu, check Ref Edit
Control, and then click OK. The RefEdit control appears on the toolbox in the Visual Basic
Editor.
You have to be very careful with aRefEdit control. Avoid putting it in a container object (such
as aFrame orMultiPage). If you do so, you run the risk of crashing Excel.
To validate input into a RefEdit control, you can use a VBA function like this:
Function IsRange(ref As String) As Boolean
Dim x As Range
On Error Resume Next
Set x = Range(ref)
If Err = 0 Then IsRange = True Else IsRange = False
End Function
Before the form is closed, execute some validation code attached to your OK button:
If Not IsRange(RefEdit1.Text) Then
MsgBox "Invalid range."
RefEdit1.SetFocus
Exit Sub
End If
This will not allow an invalid range to be specified.
The following URL is an article on the MS Knowledge Base which describes the RefEdit control
and provides sample code on how to use it:
http://support.microsoft.com/support/kb/articles/q158/4/02.asp
XL97: Using the RefEdit Control with a UserForm
Please note that there are problems with theRefEdit control. If the worksheet is maximized,
then only ranges from the active workbook can be selected Workarounds are:
set all workbooks to a windowed state.
Or, tell the user to select a cell on the active workbook, and then press CTL
-
TAB to cycle through the open workbooks.
Another solution is to avoid theRefEdit control.  Rather, use aLabel with a
button next to it. The button's caption is something like "Specify a Range."
Clicking the button runs a sub that hides the userform and displays Excel's
Application.InputBox, set up so the user can select a range (type = 8). Then,
the code transfers the selected address to the Label.
13.4.2 Using A Ref Edit Form On A User Form To Select A
Range
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.
rotate pages in pdf and save; rotate one page in pdf reader
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
rotate individual pdf pages reader; how to rotate a page in pdf and save it
236
The following is another example of using a ref edit form.
If you need to have the user select a cell or a range of cells for you, you can do so using a ref edit
box on a user form.  The first step is obviously to create a user form.  Do this by selecting in the
Visual Basic editor Insert, User Form.
Next, click on the ref edit button of the toolbox controls and draw a ref edit box on the user form.
The default name should be RefEdit1.  Verify this by pressing F4 with the ref edit box selected.
If it is different, then you will need to modify the code below accordingly.
Next, draw two command bar buttons on the sheet and change their labels to "OK" and
"CANCEL".  Select the OK button and press F4 to display the properties window.  Change the
name of the button from "commandbar1" to "OK".  Select the Cancel button and press F4 to
display its property window.  Change its name to "Cancel"
Select the OK button and then double click on it.  The following code will appear in a module
with a name like "UserForm1 (code)":
Private Sub OK_Click()
End Sub
Modify this code to have the following line in it, assuming that the name of your user form is
"UserForm1".  If the name of your user form is different, use that name instead. This new line
hides the user form when the button is clicked.
Private Sub OK_Click()
UserForm1.Hide
End Sub
Next, select the Cancel button on the user form.  Then double click on it and modify the code
that appears to be the following. If the name of your user form is different, use that name instead.
Private Sub Cancel_Click()
Unload UserForm1
End
End Sub
TheUnload line removes the userform from memory.  TheEnd line halts all macro activity.  If
you do not want to halt activity, then set a Boolean Public variable toFalse and then have the
routine that displayed the user form check this variable to determine if OK or Cancel was
selected.  In the OK button code, set the public variable to True.
Now copy the following code to a module in the workbook containing the user form.  It should
not be in the user form module.  Please note that the above code and the following code assumes
that your form is named "UserForm1".  If it is a different name, then use that name instead.
Sub Get_A_Range()
Dim selectedRange As Range
'display the user form
237
UserForm1.Show
'set a variable to the range selected.
Set selectedRange = Range(UserForm1.RefEdit1.Text)
'code that uses the selected range
End Sub
The above code sets the range variable "selectedRange" to the range selected in the user form.  If
you want to demonstrate that his was done, use the following line of code:
Application.Goto selectedRange, True
To select a range in a different workbook, the user will need to press CTRL
-
Tab if the current
window is maximized.  As they probably won't figure this out, you should make a comment to
this effect on the userform.
13.4.3 Using Reference EditBoxes on DialogSheets
An alternate to the userform Ref Edit Control is an editbox on a dialogsheet.  This has one very
large advantage over a ref edit control:  You can select a range on any worksheet or workbook
from a dialogsheet's editbox.
To select a range in an editbox in a dialogsheet, you must first set the editbox's validation option
to "reference".  The validation options can be displayed by clicking on the Control Options button
of the Forms toolbar.  To assign this selection to a range variable for later use, use a statement
like the following:
Dim rangeToUse As Range
Dim myDialog As DialogSheet
Dim refBox As EditBox
'use object variables to refer to the dialogsheet and edit boxes
Set myDialog = ThisWorkbook.DialogSheets("Dialog1")
Set refBox = myDialog.EditBoxes("Edit Box 4")
'clear the edit box in case it has a prior entry
refBox.Text = ""
'loop until a selection is made or cancel selected
While refBox.Text = ""
'display the dialog, exit if cancel selected
If Not myDialog.Show Then Exit Sub
If refBox.Text = "" Then _
238
MsgBox "You did not specify a range"
Wend
'assign the range selected to a range variable
Set rangeToUse = Range(refBox.Text)
13.4.4 Sample Code On Using The RefEdit Box
A RefEdit control is an edit box on an user form that allows one to pick a range of cells.  If it is
not displayed on your toolbox commandbar, then  click References on the Tools menu, check Ref
Edit Control, and then click OK. The RefEdit control will then appear on the toolbox in the
Visual Basic Editor.
To have a user select a range from a userform, you must put a RefEdit box on the userform.  You
must also put command buttons on the userform that act as OK and Cancel buttons.  The
following is code like the above that displays the userform and assigns the selected range to a
range variable:
Dim rangeToUse As Range
'use a with statement to simplify the code.  Note the periods in
'front of RefEdit1
With UserForm1
'clear the edit box in case it contains an entry
.RefEdit1.Text = ""
'loop until the cancel button selected or an entry made and
'the OK button selected
While .RefEdit1.Text = ""
'set focus to the refedit box as a loop back will put the focus
'on the button
.RefEdit1.SetFocus
'display the user form
UserForm1.Show
'if no selection, display a message
If .RefEdit1.Text = "" Then _
MsgBox "Please select a range"
239
'companion statement the While statement
Wend
End With
Set rangeToUse = Range(UserForm1.RefEdit1.Text)
'remove userform from memory
Unload UserForm1
Please note on the userform above, you need two buttons that act as OK and Cancel buttons.
When you draw the buttons, they will have labels like "Commandbutton1".  You can edit this
text to be OK or Cancel.  You then need to double click on the buttons to display the userform's
code module, and put the following code in for each button:
Private Sub CommandButton1_Click()
'the OK button, which hides the form and allows execution to continue
UserForm1.Hide
End Sub
Private Sub CommandButton2_Click()
'the cancel button.  In this case an End statement is used which
'halts macro execution
End
End Sub
The option to use an End statement in the second button is to hide the form, set a global variable
indicating which button was selected, and then in the code testing the value of the global variable
and determining what action to take.
The following URL is an article on the MS Knowledge Base which describes the RefEdit control
and provides sample code on how to use the RefEdit control:
http://support.microsoft.com/support/kb/articles/q158/4/02.asp
XL97: Using the RefEdit Control with a UserForm
13.5 LABELS AND TEXTBOXES
13.5.1 An Example Of Using A UserForm With A TextBox
The following illustrates how to obtain the user's textbox entry on a userform.  The key is that
you hide your userform rather than unload it, the values and results of the userform remain set
and addressable by your code module.  The following code provides a general approach, for a
userform with two buttons and a text box.
240
'In the userform code module put the following for your 1st button
'which should be labeled OK
Private Sub CommandButton1_Click
Me.Hide
End Sub
'Label the other button "Cancel" and put the following code in it, which halts all activity
Private Sub CommandButton2_Click
Me.Hide
End sub
In your general code module:
Sub Test()
Dim myData
userform1.Show
'Store the value on the userform
myData = UserForm1.TextBox1.Text
'now unload the form
UnLoad UserForm1
' remainder of code
End Sub
13.5.2 Highlighting Entry In A Userform TextBox
In the Enter event in the text box control, placing the following code (in this case for TextBox1)
will select the text in the text box when the user clicks in it.
Private Sub TextBox1_Enter()
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox1.Text)
End Sub
The above code goes into the userform's code module.
13.5.3 How To Select The Entry In A TextBox
The simplest way to force a specific control to have focus when you show a UserForm is to set
that control'sTabIndex property to 0 (top of the tab order).  This only applies to controls sited
directly on the userform. It won't work if the control is placed within another container, like a
Frame or MultiPage control.  Select View, Tab Order to set the tab order on a userform.
Documents you may be interested
Documents you may be interested