View Single Post
  #9   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default delete Userform control programmatically

This works fine (in a Userform):

Private Sub CommandButton1_Click()

Set ctrl = Me.Controls.Add _
(bstrprogID:="Forms.TextBox.1", _
Name:="TextBox1", Visible:=True)
ctrl.Top = Me.Controls("combobox1").Top + _
Me.Controls("Combobox1").Height + 10
ctrl.Left = Me.Controls("Combobox1").Left


End Sub

Private Sub CommandButton2_Click()
Me.Controls.Remove "Textbox1
End Sub

So it isn't restricted to a numerical index - while not real clear, the help
does say that it is not restricted to a numerical index.

--
Regards,
Tom Ogilvy

"K Dales" wrote in message
...
No, ben, I apologize as in retrospect you were clear that you were talking
about a userform control, not the userform itself. But, hey, I found out
something useful, right?

A run-time control can be deleted with .Remove, but the argument is the
index number in the controls collection, which can make it tricky since

that
can change - but this seems to work:

i = 0
While i < UserForm1.Controls.Count
If UserForm1.Controls(i).Name = "MyControl" Then
UserForm1.Controls.Remove i
i = i + 1
Wend

Hope this finally gives you what you need!


"ben" wrote:

K. Dales,

I must apologize to everyone, it seems my question was not

specific
enough. Let me try again. I want to delete a Control off of a Userform,

not
the userform itself, and I wish to do so through VBA not in VBE in

design
mode. I did find how to remove all controls, but I wish to do only one

at a
time.

"K Dales" wrote:

Geez, Ben, didn't turn out to be so easy to figure this out, but you

got me
curious so I followed the trail and found the answer: You need to add

the
VBIDE (Microsoft Visual Basic for Applications Extensibility)

reference, and
then:

ThisWorkBook.VBProject.VBComponents.Remove _
ThisWorkBook.VBProject.VBComponents("UserForm1")


"ben" wrote:

Have searched on discussion groups and not found what I am looking

for.
How do you programmatically delete a Userform control. This is one

that I
have created myself through VBA.
Ben