UserForm Data Entry System
Create a data entry form with dropdown lists, automatic field population, and data validation for efficient data collection.
Perfect For:
- Employee data entry
- Customer registration forms
- Inventory intake
- Survey data collection
- Order entry systems
' UserForm Data Entry System
' This code creates a data entry form with cascading dropdowns and validation
Private Sub UserForm_Initialize()
' Initialize form controls
On Error GoTo ErrorHandler
' Populate dropdown from worksheet data
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("MasterData")
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' Populate ComboBox1 with unique values from column A
Dim i As Long
For i = 2 To lastRow
If ws.Cells(i, 1).Value <> "" Then
Me.ComboBox1.AddItem ws.Cells(i, 1).Value
End If
Next i
' Set default values
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.ComboBox2.Clear
Exit Sub
ErrorHandler:
MsgBox "Error initialising form: " & Err.Description, vbCritical
End Sub
Private Sub ComboBox1_Change()
' Cascade: populate ComboBox2 based on ComboBox1 selection
On Error GoTo ErrorHandler
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("MasterData")
Dim selectedValue As String
selectedValue = Me.ComboBox1.Value
' Clear dependent dropdown
Me.ComboBox2.Clear
' Find matching records and populate ComboBox2
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Dim i As Long
For i = 2 To lastRow
If ws.Cells(i, 1).Value = selectedValue Then
If ws.Cells(i, 2).Value <> "" Then
Me.ComboBox2.AddItem ws.Cells(i, 2).Value
End If
End If
Next i
Exit Sub
ErrorHandler:
MsgBox "Error updating dependent field: " & Err.Description, vbCritical
End Sub
Private Sub CommandButton1_Click()
' Submit button - validate and save data
On Error GoTo ErrorHandler
' Validate required fields
If Me.ComboBox1.Value = "" Then
MsgBox "Please select a value from the first dropdown.", vbExclamation
Exit Sub
End If
If Me.ComboBox2.Value = "" Then
MsgBox "Please select a value from the second dropdown.", vbExclamation
Exit Sub
End If
If Me.TextBox1.Value = "" Then
MsgBox "Please enter a value in the text field.", vbExclamation
Me.TextBox1.SetFocus
Exit Sub
End If
' Save data to worksheet
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("DataEntry")
Dim nextRow As Long
nextRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
' Write data to columns
ws.Cells(nextRow, 1).Value = Me.ComboBox1.Value
ws.Cells(nextRow, 2).Value = Me.ComboBox2.Value
ws.Cells(nextRow, 3).Value = Me.TextBox1.Value
ws.Cells(nextRow, 4).Value = Me.TextBox2.Value
ws.Cells(nextRow, 5).Value = Now ' Timestamp
ws.Cells(nextRow, 6).Value = Application.UserName ' User who entered data
MsgBox "Data saved successfully!", vbInformation
' Clear form for next entry
Call UserForm_Initialize
Exit Sub
ErrorHandler:
MsgBox "Error saving data: " & Err.Description, vbCritical
End Sub
Private Sub CommandButton2_Click()
' Cancel button - close form
Unload Me
End Sub
Related Topics
Need Custom VBA Solutions?
Our AI-powered VBA generator can create custom code tailored to your specific requirements in seconds.
Free AI generations every month — top up with credit packs anytime
Related Templates
More VBA templates in the same category
Timesheet & Attendance Tracker
Track employee working hours, overtime, absences, and holidays with automatic calculations, weekl...
View TemplateInventory Management System
Manage stock levels with automatic reorder alerts, stock movement logging, valuation reports, and...
View TemplateData Entry Form with Validation
Professional UserForm-based data entry system with field validation, dropdown lists, date pickers...
View Template