View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Keith Keith is offline
external usenet poster
 
Posts: 55
Default Selecting control on userform with part of control name (set q

Thanks Alok- I'll give it a try!
:)
Keith

"Alok" wrote in message
...
This might help you..
Dim z%, CurrObj$, EdArray$(1 To 5)
Dim t As msforms.TextBox
Dim cnt As Control

EdArray(1) = "a"
EdArray(2) = "b"
EdArray(3) = "c"
EdArray(4) = "d"
EdArray(5) = "e"

For Each cnt In Controls
If TypeOf cnt Is msforms.TextBox Then
Set t = cnt
z = Mid$(cnt.Name, 2)
If Mid$(cnt.Name, 1) = "E" And z = LBound(EdArray) And z <=
UBound(EdArray) Then
t.Text = CStr(EdArray(z))
End If
End If
Next cnt


"Keith" wrote:

Another general update; I think I'm closer, but still no dice-

I have 10 textboxes on userform1 named E1, E2, E3, etc. I want the
textbox.text (E1.text, etc.) to reflect the contents of an array

For z = 1 To 10
CurrObj = "E" & CStr(z) 'control string name
UserForm1.Controls(CurrObj).Text =
CStr(EdArray(ShortEd,
z))
Next

I get error 438, object doesn't support this property or method

This is one of several sets of controls I want to update, but if I can
get
one working, I can probably work out the rest- I'm just having trouble
with
the syntax...

Thanks,
Keith

"Keith" wrote in message
...
I have a select case statement, in which I determine which group of
controls ("a", "b", "c", ..."j") I need to update (groups include
radiobuttons, checkboxes, etc.); e.g., group "a" includes cb_a, opt_a1T,
opt_a1F, opt_a2T, opt_A2F, etc.


Without looping through all controls (that would be a lot of extra
searching, with one full loop for each control) I'd like to be able to
set
the control references dynamically, e.g.

Select Case
Case "Green"
Use_group = "a"
End Select

Set current_opt = "opt_" & Use_group & "1T" '<<<
current_opt.value = false

Can anyone point me to the correct syntax to directly select a control
based on control name?

Many thanks,
Keith