Search Contextures Sites ![]()
Excel -- Data Validation -- Combo box -- Click
Download the zipped sample file
Create a Data Validation Dropdown List
Add the Combo box
Open the Properties Window
Change the Combo box Properties
Exit Design Mode
Add the Code
Test the Code
You can use Data Validation to create a dropdown list of options in a cell. However, the list font can't be changed, nor can the number of visible rows, which has a maximum of eight. Also, Data Validation doesn't have an AutoComplete feature, which finds matching items in the list as you start to type.To overcome these limitations, you can add a combo box to your worksheet, and use programming to make it appear in cells that contain a data validation list. Click on a cell that contains a data validation list, and the combo box appears. The combo box's font size can be set, more than 8 rows can be displayed, and autocomplete can be enabled.
If you would prefer to see the combo box only when you double-click on a data validation cell, please use the instructions at one of the following pages:
Data Validation -- Combo Box
Data Validation -- Combo Box - Named RangesNote: If the worksheet is protected, allow users to Edit Objects, and they will be able to use the combobox.
Create a Data Validation Dropdown ListOn Sheet1, type the lists that will be used in the data validation dropdowns:
Tip: Use the AutoFill feature to create the lists
- In cells K2:K8 type a list of weekdays
- In cells M2:M13 type a list of months
The next step is to create the data validation dropdown lists. There are detailed instructions here: Data Validation -- Introduction
To add or edit the Combobox, open the Control Toolbox, and enter Design Mode:
Open the Properties WindowTo format the combo box, open the properties window:
- Select the combo box
- On the Control Toolbox, click the Properties button
![]()
Set the Number of Rows
- In the Properties window, click in the ListRows box
- Type the number of rows that you want displayed in the dropdown. In this example, the setting is: 12
Turn on AutoComplete
- In the Properties window, click in the MatchEntry property
- From the dropdown list, select 1-frmMatchEntryComplete
Exit Design Mode
- Close the Properties window
- On the Control Toolbox, click the Exit Design Mode button
Visual Basic for Applications (VBA) code is required to make the combo box appear when you click in a cell that contains a data validation list.
Copy the following code:
'========================================= Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim str As String Dim cboTemp As OLEObject Dim ws As Worksheet Set ws = ActiveSheet On Error GoTo errHandler If Target.Count > 1 Then GoTo exitHandler Set cboTemp = ws.OLEObjects("TempCombo") On Error Resume Next If cboTemp.Visible = True Then With cboTemp .Top = 10 .Left = 10 .ListFillRange = "" .LinkedCell = "" .Visible = False .Value = "" End With End If If Target.Validation.Type = 3 Then 'if the cell contains a data validation list Application.EnableEvents = False 'get the data validation formula str = Target.Validation.Formula1 str = Right(str, Len(str) - 1) With cboTemp 'show the combobox with the list .Visible = True .Left = Target.Left .Top = Target.Top .Width = Target.Width + 5 .Height = Target.Height + 5 .ListFillRange = ws.Range(str).Address .LinkedCell = Target.Address End With cboTemp.Activate End If exitHandler: Application.EnableEvents = True Exit Sub errHandler: Resume exitHandler End Sub '==================================== 'Optional code to move to next cell if Tab or Enter are pressed 'from code by Ted Lanham Private Sub TempCombo_KeyDown(ByVal _ KeyCode As MSForms.ReturnInteger, _ ByVal Shift As Integer) Select Case KeyCode Case 9 'Tab ActiveCell.Offset(0, 1).Activate Case 13 'Enter ActiveCell.Offset(1, 0).Activate Case Else 'do nothing End Select End Sub '====================================
To add this code to the worksheet:
- Click on one of the cells that contains a data validation list.
- The combo box will appear
- Select an item from the combo box dropdown list
- Click on a different cell, to select it
- The selected item appears in previous cell, and the combo box disappears.
Download the sample file
Last updated: November 4, 2008 4:22 PM