Logicwurks Home Page

Links To Excel Code Examples

Range/Wkb/Wks Variables
Add Grand Totals Using Ranges
Using Range Offset Property
Using Range Find Method
Union Of Ranges
Delete Duplicate Rows
Delete Rows And Columns
Worksheet Variables
Loop Through Worksheets
Add Worksheets Dynamically
Find Last Row Or Column
Copy And Paste Special
Copy To Specific Cell Types
Open An Excel File
Open An Excel File w/Params
Open An Excel File On Web
Sort Methods 2003 - 2010
Sort Alpha/Numeric In ASCII
Search Using Match Function
Search Using Vlookup Function
Remove String Non-Printables
Auto_Open And Auto_Close
Initialize Form At Open
Load Combo And List Boxes
Excel Events
Worksheet Change Events
Binary Search Of Array
Typecast Constants
Excel Error Handling
Handling Optional Parameters
Data Validation Drop Downs
Read A Text Fiile w/Handle
Read A Text Fiile w/Script
Dynamically Load Images
Test For Exists Or Open
Loop Through Pictures
Loop Through Form Objects
Splash Screen
Dynamically Load Formulas
Date Examples
Date Find Same Days
Convert Month To Number
Initialize Arrays
Redim An Array
Reassign Button Action
Timer Functions
Legacy Calendar Control
Excel 2010 Date Picker
Paste Pictures Into Excel
Generate Multiple Worksheets
Read Access Data Into Excel

Links To Access Code Examples

Create Recordset With AddNew
Update Field(s) In A Recordset
Import A Tab Delimited File
Export Excel From Query
Import Tab Delim w/WinAPI
Initialize Global Variables
Access Error Handling
Loop Through Form Controls
Insert A Calendar Control
Create A Filtered Recordset
Populate Combo Boxes
Passing Form Objects
Create VBA SQL Statements
Create Dynamic Queries
Display File Images On A Form
Manipulate Files via VBA
Manipulate Files via Scripting
Number Subform Records
Parse Delimited Fields
Parameterized Queries (VBA)
Manipulating QueryDefs In VBA
FindFirst On Combined Keys
Execute SQL Delete Records
Commit Form To Table
Report With No Data
Reference Form Objects

 

Load Combo and List Boxes At Form Startup

When Excel forms are used, all Combo and List boxes need to be loaded at form startup. The example below illustrates two methods. The first method, which loads a combo box, builds an array of vendor names that are stored in a worksheet, and then using a single command, initializes the combo box with values from the array. The second example loads a list box one entry at a time.

This example uses the UserForm_Initialize() event, which is activated when a form starts to load. By the time it is fully rendered for the user, both the combo box and list box will be initialized.

Program Code

Option Explicit
Option Base 1

Private Sub UserForm_Initialize()
' **********************************************
' This is triggered by the Excel Form Open Event
' **********************************************

' **********************************************
' Define Workbook and Worksheet Variables
' **********************************************
Dim wkbLoadForm As Workbook
Dim wksLoadForm As Worksheet
Dim wksVendorNames As Worksheet

' **********************************************
' Define The Vendor Name Array so it can be
' redimensioned to the exact number of entries
' **********************************************
Dim strVendorName() As String

' **********************************************
' Other Variables
' **********************************************
Dim lngLastVendorDataRow As Long
Dim lngVendorRow As Long
Dim lngVendorArrayPtr As Long

' ***********************************************
' Initialize The Workbook and Worksheet Variables
' ***********************************************
Set wkbLoadForm = ThisWorkbook
Set wksLoadForm = Sheets("MainSheet")
Set wksVendorNames = Sheets("VendorNames")

' **************************************************
' Redimension Vendor Array To Arbitrary Large Number
' **************************************************
ReDim strVendorName(5000)

' *********************************************************************
' Find The Last Row For Vendor Names In The Worksheet
' *********************************************************************
lngLastVendorDataRow = wksVendorNames.Cells(Rows.Count, "A").End(xlUp).Row

' *********************************************************************
' Load the array with vendor names
' Row 1 of vendor names is a header, so start with row 2
' *********************************************************************
lngVendorArrayPtr = 0

For lngVendorRow = 2 To lngLastVendorDataRow
        lngVendorArrayPtr = lngVendorArrayPtr + 1
        strVendorName(lngVendorArrayPtr) = wksVendorNames.Cells(lngVendorRow, 1).Value
Next lngVendorRow

' ************************************************************
' Redimension the vendor array to the actual number of entries
' ************************************************************
ReDim Preserve strVendorName(lngVendorArrayPtr)

' ************************************************************
' Load the Combo Box with one command
' ************************************************************
UserForm1.ComboBox1.List = strVendorName

' ************************************************************
' Demonstrate how to load a text box one entry at a time
' ************************************************************
' *********************************************************************
  With ListBox1
    .Clear
    .AddItem "Alberta"
    .AddItem "Bakersfield"
    .AddItem "Chicago"
    .AddItem "Detroit"
    .AddItem "Eugene"
    .AddItem "France"
    .AddItem "Georgia"
    .AddItem "Hawaii"
    .AddItem "Idaho"
  End With

End Sub