Gotta be some more Efficient code

J

Jennifer

I have 10 text boxes is there a more efficient way to write this code.
Eventually there could be more textboxes and labels. Loop? Thank you so much.

If Len(Trim(Label1.Caption)) > 0 Then
TextBox1.Visible = True
Else
TextBox1.Visible = False
End If
If Len(Trim(Label2.Caption)) > 0 Then
TextBox2.Visible = True
Else
TextBox2.Visible = False
End If
 
G

Gary Keramidas

this worked for me

Private Sub CommandButton1_Click()
Dim i As Long

For i = 1 To 10
If Len(Trim(Me.Controls("label" & i).Caption)) > 0 Then
Me.Controls("textbox" & i).Visible = True
Else
Me.Controls("textbox" & i).Visible = False
End If
Next
End Sub
 
G

Greg Wilson

Dim i As Integer
For i = 1 To 10
Controls("TextBox" & i).Visible = (Len(Controls("Label" & i).Caption) > 0)
Next

I assume you don't need the Trim function because *you* will be creating the
captions and can avoid captions with only blank spaces ?

Greg
 
N

Nigel

This works for a UserForm but does it work for activeX controls on the
worksheet?

--

Regards,
Nigel
(e-mail address removed)
 
G

Greg Wilson

I assume that was a rhetorical question <g>

Dim i As Integer
For i = 1 To 10
With Me.OLEObjects("Label" & i).Object
Me.OLEObjects("TextBox" & i).Visible = (Len(.Caption) > 0)
End With
Next
 
N

Nigel

It was <g> and thanks for the solution.

--

Regards,
Nigel
(e-mail address removed)



Greg Wilson said:
I assume that was a rhetorical question <g>

Dim i As Integer
For i = 1 To 10
With Me.OLEObjects("Label" & i).Object
Me.OLEObjects("TextBox" & i).Visible = (Len(.Caption) > 0)
End With
Next
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top