ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Variable Control name (https://www.excelbanter.com/excel-programming/428478-variable-control-name.html)

Brett

Variable Control name
 
Hi there, I have a sub which gets the value of a Userform (name UF0_QCP)
control name passed into it (tb) but I'm having a little difficulty with the
syntax:

Dim TBC As control
Set TBC = Controls("UF0_QCP." & tb)

What is the missing link please? Regards, Brett

Jacob Skaria

Variable Control name
 
I am not sure I understood your question...Are you trying to pass the control
name as a variable ....as below

Private Sub CommandButton1_Click()
Dim TBC As Control
Dim strControl As String
strControl = "TextBox1"
Set TBC = UserForm1.Controls(strControl)
MsgBox TBC.Text
End Sub

--
If this post helps click Yes
---------------
Jacob Skaria


"Brett" wrote:

Hi there, I have a sub which gets the value of a Userform (name UF0_QCP)
control name passed into it (tb) but I'm having a little difficulty with the
syntax:

Dim TBC As control
Set TBC = Controls("UF0_QCP." & tb)

What is the missing link please? Regards, Brett


Rick Rothstein

Variable Control name
 
While the UserForm is the default object for all controls on it (meaning you
don't have to qualify the control), you can do it (if you want) this way...

Set TBC = UF0_QCP.Controls(tb)

Note: Controls is a property of the UserForm

--
Rick (MVP - Excel)


"Brett" wrote in message
...
Hi there, I have a sub which gets the value of a Userform (name UF0_QCP)
control name passed into it (tb) but I'm having a little difficulty with
the
syntax:

Dim TBC As control
Set TBC = Controls("UF0_QCP." & tb)

What is the missing link please? Regards, Brett



Brett

Variable Control name
 
Hi Rick, thanks for that, works like a charm. Are you suggesting that the
code could be simpler "(if you want)"? Regards, Brett

"Rick Rothstein" wrote:

While the UserForm is the default object for all controls on it (meaning you
don't have to qualify the control), you can do it (if you want) this way...

Set TBC = UF0_QCP.Controls(tb)

Note: Controls is a property of the UserForm

--
Rick (MVP - Excel)


"Brett" wrote in message
...
Hi there, I have a sub which gets the value of a Userform (name UF0_QCP)
control name passed into it (tb) but I'm having a little difficulty with
the
syntax:

Dim TBC As control
Set TBC = Controls("UF0_QCP." & tb)

What is the missing link please? Regards, Brett




Brett

Variable Control name
 
Hi Jacob, thanks for your response (apologies for delay in returning - had to
sleep!).
I tried Rick's suggestion first and it did the job. Regards, Brett

"Jacob Skaria" wrote:

I am not sure I understood your question...Are you trying to pass the control
name as a variable ....as below

Private Sub CommandButton1_Click()
Dim TBC As Control
Dim strControl As String
strControl = "TextBox1"
Set TBC = UserForm1.Controls(strControl)
MsgBox TBC.Text
End Sub

--
If this post helps click Yes
---------------
Jacob Skaria


"Brett" wrote:

Hi there, I have a sub which gets the value of a Userform (name UF0_QCP)
control name passed into it (tb) but I'm having a little difficulty with the
syntax:

Dim TBC As control
Set TBC = Controls("UF0_QCP." & tb)

What is the missing link please? Regards, Brett


Rick Rothstein

Variable Control name
 
If the code is in the UserForm's module, then you can refer to the UserForm
using the Me object...

Set TBC = Me.Controls(tb)

or, since the Controls parent is always the UserForm (when the code is
within the UserForm's module), you can leave it out altogether...

Set TBC = Controls(tb)

--
Rick (MVP - Excel)


"Brett" wrote in message
...
Hi Rick, thanks for that, works like a charm. Are you suggesting that the
code could be simpler "(if you want)"? Regards, Brett

"Rick Rothstein" wrote:

While the UserForm is the default object for all controls on it (meaning
you
don't have to qualify the control), you can do it (if you want) this
way...

Set TBC = UF0_QCP.Controls(tb)

Note: Controls is a property of the UserForm

--
Rick (MVP - Excel)


"Brett" wrote in message
...
Hi there, I have a sub which gets the value of a Userform (name
UF0_QCP)
control name passed into it (tb) but I'm having a little difficulty
with
the
syntax:

Dim TBC As control
Set TBC = Controls("UF0_QCP." & tb)

What is the missing link please? Regards, Brett





Brett

Variable Control name
 
OK, well the shorter the better as far as Me.Is.Concerned. Thanks Rick, Brett

"Rick Rothstein" wrote:

If the code is in the UserForm's module, then you can refer to the UserForm
using the Me object...

Set TBC = Me.Controls(tb)

or, since the Controls parent is always the UserForm (when the code is
within the UserForm's module), you can leave it out altogether...

Set TBC = Controls(tb)

--
Rick (MVP - Excel)


"Brett" wrote in message
...
Hi Rick, thanks for that, works like a charm. Are you suggesting that the
code could be simpler "(if you want)"? Regards, Brett

"Rick Rothstein" wrote:

While the UserForm is the default object for all controls on it (meaning
you
don't have to qualify the control), you can do it (if you want) this
way...

Set TBC = UF0_QCP.Controls(tb)

Note: Controls is a property of the UserForm

--
Rick (MVP - Excel)


"Brett" wrote in message
...
Hi there, I have a sub which gets the value of a Userform (name
UF0_QCP)
control name passed into it (tb) but I'm having a little difficulty
with
the
syntax:

Dim TBC As control
Set TBC = Controls("UF0_QCP." & tb)

What is the missing link please? Regards, Brett






All times are GMT +1. The time now is 05:28 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com