Search Contextures Sites

 

Excel UserForms for Data Entry

 

 

Contextures
Excel news
by email

 

 

 

30 Excel Functions in 30 Days

 

 

Learn how to create Excel dashboards.

 

 

 

 

 

Your worksheet formulas can create traffic-light charts, highlight chart elements, assign number formats, and more.

 

 

 

 

 

 

 

Learn how to create Excel dashboards.

 

 

 

30 Excel Functions in 30 Days

 

 

 

Learn how to create Excel dashboards.

 

 

 

Learn how to create Excel dashboards.

 

 

Live-link your Excel dashboards to nearly any web data.

 

 

 

Learn how to create Excel dashboards.

 

 

Learn how to create Excel dashboards.

 

Learn how to create Excel dashboards.

 

 

Excel UserForms for Data Entry

Create an Excel UserForm

To make it easier for users to enter data in a workbook, you can create an Excel UserForm.

See also, Excel UserForm with Combo Boxes.

Introduction to UserForms

To create a UserForm requires some programming, and you can see the steps in the videos shown below. For the written instructions, look below the videos.

In this example, inventory data is stored on a hidden worksheet, where it is protected from accidental damage or deletion. Users enter inventory data by opening the UserForm, filling in the boxes, and clicking a button.

Excel UserForm 01

Video: Create an Excel User Form

To see the steps for creating a UserForm, please watch these 3 short video tutorials. The written instructions are below the video.

In the videos, Excel 2003 is used, and the same steps can be followed in later versions. When saving the file in Excel 2007 or later, save as a macro-enable file type.

The Completed UserForm -- How It Works

Before building the UserForm, you can watch this short video that shows the completed form, and how it works.

Creating a UserForm - Part 1

In part 1 of 3, you'll see how to create a blank Userform. Then you'll name the UserForm, and next you'll add text boxes and labels.

Users will be able to type data into the text boxes. Labels are added beside the text boxes, to describe what users should enter into the text box

Creating a UserForm - Part 2

In Part 2 of 3, you'll learn how to add buttons and a title on the UserForm.

With buttons on the UserForm, a user can click to make something happen. For example, click a button after entering data in the text boxes, when you're ready to move the data to the worksheet storage area.

Creating a UserForm - Part 3

In Part 3 of 3, you'll learn how to add VBA code to the controls, and you'll see how to test the UserForm.

The VBA code runs when a specific event occurs, such as clicking a button, or entering a combo box. In this example, the user will click a button, and the VBA code will move the data to the worksheet storage area.

Set up the worksheet

In this example, a parts inventory is stored on a hidden worksheet.

  1. Open a new workbook
  2. Double-click on the sheet tab for Sheet1
  3. Type: PartsData
  4. Press the Enter key
  5. In cells A1:D1, enter the headings for the parts inventory database, as shown at right.
  6. Choose File | Save, and save the workbook. In this example, the file has been named PartsLocDB.xls.
    NOTE: In Excel 2007 and later versions, save the file as a macro-enabled file type.
A
B
C
D
1
PartID
Location
Date
Qty
2
12345
Store 001
3/3/2004
87
3
       

Create a UserForm

UserForms are created in the Visual Basic Editor.

  1. To open the Visual Basic Editor, hold the Alt key, and press the F11 key
  2. Choose View | Project Explorer, to see a list of projects. (Usually, this is displayed at the left side of the VBE window.)
  3. In the Project Explorer, select the PartLocDB project.
  4. From the menu bar, choose Insert | UserForm
  5. Insert Excel UserForm

  6. A blank UserForm appears, and the ToolBox should open. (If the ToolBox doesn't appear, choose View | Toolbox)  

Name the UserForm

  1. To open the Properties window, press the F4 key
  2. In the Properties window, double-click on the Name -- UserForm1, at the top right of the window.
  3. Type:  frmPartLoc
    and press the Enter key
  4. Name Excel UserForm

  5. The form name will change in the Project Explorer, but the form still shows UserForm1 in its title bar.
  6. In the Properties window, double-click on the Caption property-- UserForm1.
  7. Type:  Parts Inventory
    and press the Enter key
  8. The title bar will display the new caption. 

Add a Textbox to the UserForm

The objects on a UserForm, such as buttons, and textboxes, are called controls. To allow users to enter data, you can add textbox controls to the form, with label controls to describe them.

  1. In the Toolbox, click on the TextBox button.
  2. Excel UserForm Textbox

  3. On the UserForm, click near the top centre, to add a standard sized textbox.
  4. Excel UserForm Textbox 01

  5. With the new textbox selected, double-click on the Name property in the Properties window.
  6. Type:  txtPart
    and press the Enter key
  7. Click on an empty part of the UserForm, to select the UserForm and to display the Toolbox. 

Learn how to create Excel dashboards.

Add a Label to the UserForm

To help users enter data, you can add label controls to describe the textboxes, or to display instructions.

  1. In the Toolbox, click on the Label button.
  2. Label Excel UserForm

  3. On the UserForm, click to the left of the textbox, to add a standard sized label.
  4. Resize label Excel UserForm

  5. With the new label selected, double-click on the Caption property in the Properties window.
  6. Type:  Part
    and press the Enter key
  7. If necessary, you can resize the label, so it doesn't cover the textbox -- point to the handle on its right border, and drag to the left.
  8. Click on an empty part of the UserForm, to select the UserForm and to display the Toolbox. 

Add remaining textboxes and labels

Repeat the above steps to add:

  • a textbox named txtLoc, with a label Location
  • a textbox named txtDate, with a label Date
  • a textbox named txtQty, with a label Quantity 

Excel UserFormTextboxes

If the textboxes are not aligned, you can align them:

  1. Click on the first textbox
  2. Hold the Ctrl key, and click on the remaining textboxes
  3. Choose Format | Align | Lefts
  4. Click on an empty part of the UserForm, to select the UserForm and to display the Toolbox.   

Add Buttons to the UserForm

To allow users to perform an action, you can add command buttons to the user form. This form has a button to add data to the database, and a button to close the form.

  1. In the Toolbox, click on the CommandButton button.
  2. CommandButton Excel UserForm

  3. On the UserForm, click at the bottom left, to add a standard sized CommandButton.
  4. With the new CommandButton selected, double-click on the Name property in the Properties window.
  5. Type:  cmdAdd
    and press the Enter key
  6. With the new CommandButton selected, double-click on the Caption property in the Properties window.
  7. Type:  Add this part
    and press the Enter key
  8. Click on an empty part of the UserForm, to select the UserForm and to display the Toolbox.
  9. Repeat the above steps to add a CommandButton named cmdClose, with a label Close
  10. Excel UserForm Move CommandButtons

  11. If required, you can reposition the buttons by dragging them to a new location on the UserForm. 

Add code to the buttons

To make the buttons perform an action, you create code that runs when the button is clicked.

Add code to the cmdAdd button

  1. Select the cmdAdd button
  2. On the Menu bar, choose View | Code. 
  3. This creates a procedure, where you can add your code.

    Add Code Excel UserForm

  4. Where the cursor is flashing, enter the following code:
Private Sub cmdAdd_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("PartsData")

'find first empty row in database
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _ 
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'check for a part number
If Trim(Me.txtPart.Value) = "" Then
  Me.txtPart.SetFocus
  MsgBox "Please enter a part number"
  Exit Sub
End If

'copy the data to the database
'use protect and unprotect lines, 
'     with your password
'     if worksheet is protected
With ws
'  .Unprotect Password:="password"  
  .Cells(iRow, 1).Value = Me.txtPart.Value
  .Cells(iRow, 2).Value = Me.txtLoc.Value
  .Cells(iRow, 3).Value = Me.txtDate.Value
  .Cells(iRow, 4).Value = Me.txtQty.Value
'  .Protect Password:="password"
End With

'clear the data
Me.txtPart.Value = ""
Me.txtLoc.Value = ""
Me.txtDate.Value = ""
Me.txtQty.Value = ""
Me.txtPart.SetFocus

End Sub
  1. On the Menu bar, choose View | Object, to return to the UserForm.

Add code to the cmdClose button

  1. Select the cmdClose button
  2. On the Menu bar, choose View | Code. 
  3. Where the cursor is flashing, enter the following code:
Private Sub cmdClose_Click()
  Unload Me
End Sub
  1. On the Menu bar, choose View | Object, to return to the UserForm.

To allow users to close the form by pressing the Esc key:

  1. Select the cmdClose button
  2. In the Properties window, change the Cancel property to True  

To prevent users from closing the form by clicking the X button

When the UserForm is opened, there is an X at the top right. In addition to using the Close Form button, people will be able to close the form by using the X. If you want to prevent that, follow these steps.

  1. Right-click on an empty part of the UserForm
  2. Choose View | Code
  3. From the Procedure dropdown, at the top right, choose QueryClose
  4. QueryClose code inl UserForm

  5. Where the cursor is flashing, paste the highlighted code from the following sample
Private Sub UserForm_QueryClose(Cancel As Integer, _
  CloseMode As Integer)
  If CloseMode = vbFormControlMenu Then
    Cancel = True
    MsgBox "Please use the Close Form button!"
  End If
End Sub
  1. On the Menu bar, choose View | Object, to return to the UserForm.

Now, if someone clicks the X in the UserForm, they'll see your message.

QueryClose code inl UserForm

Test the UserForm

To test the form, you can run it from the VBE.

  1. Click on an empty part of the UserForm, to select the UserForm and to display the Toolbox.
  2. On the Menu bar, choose Run | Run Sub/UserForm.

    Excel UserForm use

  3. In the Part textbox, type: 12345
  4. Press the tab key to move to the next textbox.
  5. When the textboxes have been filled in, click the 'Add this part' button.
  6. Click the 'Close form' button, to return to the VBE.

If the tab order was incorrect (e.g. when you pressed the tab key you moved to the wrong textbox or button), you can change it

  1. Right-click on an empty part of the UserForm
  2. Choose Tab Order
  3. Select a control in the list, and click the Move Up or Move Down button
  4. Click OK 

Create a Button to open the UserForm

To make it easy for users to open the UserForm, you can add a button to a worksheet.

  1. Switch to Excel, and activate the PartLocDB.xls workbook
  2. Double-click on the sheet tab for Sheet2
  3. Type: Parts Data Entry
  4. Press the Enter key
  5. On the Drawing toolbar, click on the Rectangle tool (In Excel 2007 / 2010, use a shape from the Insert tab)
  6. In the centre of the worksheet, draw a rectangle, and format as desired.
  7. With the rectangle selected, type:
    Click here to add Part Information

    Open Excel UserForm

  8. Right-click on the rectangle border, and choose 'Assign Macro'
  9. Click the New button
  10. Where the cursor is flashing, type: frmPartLoc.Show
  11. Go to the Excel window, and click the button, to open the UserForm.
    • NOTE: While the UserForm is open, you won't be able to perform any other actions in Excel, such as entering data on the worksheet. You'll have to close the form first.
    • If you want users to be able to perform other actions in Excel while the form is open, change the above line to: frmPartLoc.Show False to turn off the Modal setting 
    • QueryClose code inl UserForm

Finish the Workbook

To finish the workbook, you can hide the sheet that contains the database.

  1. Switch to Excel, and activate the PartLocDB.xls workbook
  2. Select the PartsData sheet.
  3. From the menu bar, choose Format | Sheet | Hide ( In Excel 2007 / 2010, use the Format commands on the Home tab)
  4. Delete all other sheets, except Parts Data Entry
  5. Click the Click here to add Part Information button, and enter your data into the database. 
  6. Close and save the workbook

Download the Sample File

Download the sample Excel UserForm file
Download the sample file with an enhanced Excel UserForm, with comboboxes

See also Excel UserForm with Combo Boxes.

Excel UserForms for Data Entry

Get All the Excel News

For regular Excel news, tips and videos, please sign up for the Contextures Excel newsletter. Your email address will never be shared with anyone else.

Search Contextures

Search Contextures Sites

 

Learn how to create Excel dashboards.

 

Privacy Policy

 

Contextures Inc., Copyright 2014
All rights reserved.

 

Last updated: August 12, 2014 10:38 PM