I am not the original author of the below (unknown), but have pasted this here as it is good information and a question ive seen come up a few times.
Loop Through UserForm Controls
VBA UserForms and their associated controls are a great way to present/collect data from users. There are often occasions however when we need to loop through all controls on a UserForm, or only certain specified controls.
Loop Through All Controls
Use the code below to loop through all Controls on a UserForm
Code:
Private Sub CommandButton1_Click()
Dim cCont As Control
For Each cCont In Me.Controls
'DO STUFF HERE
Next cCont
End Sub
Loop Through Specific/Specified Controls
Use the code below to loop through only specified Controls on a UserForm.
Code:
Private Sub CommandButton1_Click()
Dim cCont As Control
For Each cCont In Me.Controls
If TypeName(cCont) = "TextBox" Then
'DO STUFF HERE
End If
Next cCont
End Sub
Loop Through Specific Controls on a Specified Page of a MultiPage Control
Use the code below to loop through only specific Controls on a specified page of a MultiPage Control. Note that Pages(0) is always the first page of any MultiPage Control.
Code:
Private Sub CommandButton1_Click()
Dim cCont As Control
For Each cCont In Me.MultiPage1.Pages(0).Controls
If TypeName(cCont) = "TextBox" Then
'DO STUFF HERE
End If
Next cCont
End Sub
Loop Through Specified Controls on all Pages of a MultiPage Control
Use the code below to loop through specified controls on all pages of a MultiPage Control.
Code:
Private Sub CommandButton1_Click()
Dim pPage As Page, cCont As Control
For Each pPage In Me.MultiPage1.Pages
For Each cCont In pPage.Controls
If TypeName(cCont) = "ComboBox" Then
'DO STUFF HERE
End If
Next cCont
Next pPage
End Sub
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.