Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have a sub (ClearUserform) that is called by several userforms. Sometimes
the control may not be on the userform passed to ClearUserform, thus I get an error. So I added the On Error Resume Next statement to quickly work around the error. Is there a way to test if the control exists on the userform passed to the sub. Sub MySub() Call ClearUserform(Userform1) End Sub Sub ClearUserform(MyForm As UserForm) On Error Resume Next MyForm.TextBox1 = "" ' i have other controls list here On Error GoTo 0 End Sub -- Cheers, Ryan |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Why not pass the control to the ClearForm macro? -- HTH Bob "Ryan H" wrote in message ... I have a sub (ClearUserform) that is called by several userforms. Sometimes the control may not be on the userform passed to ClearUserform, thus I get an error. So I added the On Error Resume Next statement to quickly work around the error. Is there a way to test if the control exists on the userform passed to the sub. Sub MySub() Call ClearUserform(Userform1) End Sub Sub ClearUserform(MyForm As UserForm) On Error Resume Next MyForm.TextBox1 = "" ' i have other controls list here On Error GoTo 0 End Sub -- Cheers, Ryan |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Or if you're clearing all the textboxes on that passed userform...
Option Explicit sub ClearUserForm(myform as userform) dim ctrl as control for each ctrl in myform.controls if typeof ctrl is msforms.textbox then ctrl.value = "" end if next ctrl end sub But you could do something like this: Option Explicit Sub ClearUserForm(myform As UserForm) Dim ctrl As Control Set ctrl = Nothing On Error Resume Next Set ctrl = myform.TextBox1 On Error GoTo 0 If ctrl Is Nothing Then 'do nothing Else ctrl.Value = "" End If End Sub But I think Bob's idea is much better. And if you're using the same module to clear lots of types of controls, you could use typeof to determine how to clear it. Ryan H wrote: I have a sub (ClearUserform) that is called by several userforms. Sometimes the control may not be on the userform passed to ClearUserform, thus I get an error. So I added the On Error Resume Next statement to quickly work around the error. Is there a way to test if the control exists on the userform passed to the sub. Sub MySub() Call ClearUserform(Userform1) End Sub Sub ClearUserform(MyForm As UserForm) On Error Resume Next MyForm.TextBox1 = "" ' i have other controls list here On Error GoTo 0 End Sub -- Cheers, Ryan -- Dave Peterson |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Because the number of controls on each userform to clear varies from 4 to 25.
I'd like to make my ClearUserform sub universal for all userforms. This way I just send over the userform and not have to list out all the controls. -- Cheers, Ryan "Bob Phillips" wrote: Why not pass the control to the ClearForm macro? -- HTH Bob "Ryan H" wrote in message ... I have a sub (ClearUserform) that is called by several userforms. Sometimes the control may not be on the userform passed to ClearUserform, thus I get an error. So I added the On Error Resume Next statement to quickly work around the error. Is there a way to test if the control exists on the userform passed to the sub. Sub MySub() Call ClearUserform(Userform1) End Sub Sub ClearUserform(MyForm As UserForm) On Error Resume Next MyForm.TextBox1 = "" ' i have other controls list here On Error GoTo 0 End Sub -- Cheers, Ryan . |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
maybe something like this
For s = 0 To .Frame1.Controls.Count - 1 If .Frame1.Controls(s).Name Like "OptionButton*" Then -- Gary Keramidas Excel 2003 "Ryan H" wrote in message ... I have a sub (ClearUserform) that is called by several userforms. Sometimes the control may not be on the userform passed to ClearUserform, thus I get an error. So I added the On Error Resume Next statement to quickly work around the error. Is there a way to test if the control exists on the userform passed to the sub. Sub MySub() Call ClearUserform(Userform1) End Sub Sub ClearUserform(MyForm As UserForm) On Error Resume Next MyForm.TextBox1 = "" ' i have other controls list here On Error GoTo 0 End Sub -- Cheers, Ryan |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Test to see if Sheet exists | Excel Programming | |||
Names.add - Test to see if name already exists? | Excel Programming | |||
How to test if a DLL (library) exists | Excel Programming | |||
Test for Worksheet Exists | Excel Programming | |||
Test if a folder exists | Excel Programming |