Add code on the fly to existing userforms

  • Thread starter Thread starter pan65
  • Start date Start date
P

pan65

I know I can create a new userform with new controls and new code for the
controls on the fly using VB. I have also added controls to an existing
userform but I am having trouble adding code for the controls. The name of
my userform is frmGSN and Code is a string of code. I am trying the
following code but it doesn't recognize the .CodeModule

With frmGSN.CodeModule
.InsertLines .CountOfLines + 1, Code
End With

Please help. Thanks
 
Here is an example

Sub MakeForm()
Dim TempForm As Object
Dim FormName As String
Dim NewButton As Msforms.CommandButton
Dim TextLocation As Long
'
' Create the UserForm
Set TempForm = ThisWorkbook.VBProject. _
VBComponents.Add(3) 'vbext_ct_MSForm
FormName = TempForm.Name
With TempForm
.Properties("Caption") = "Temporary Form"
.Properties("Width") = 200
.Properties("Height") = 100
End With
'
' Add a CommandButton
Set NewButton = TempForm.Designer.Controls _
.Add("forms.CommandButton.1")
With NewButton
.Caption = "Click Me"
.Left = 60
.Top = 40
End With
'
' Add an event-hander sub for the CommandButton
With TempForm.CodeModule
TextLocation = .CreateEventProc("Click", "CommandButton1")
.InsertLines TextLocation + 1, "MsgBox ""Hello!"""
.InsertLines TextLocation + 2, "Unload Me"
End With
'
' Show the form
VBA.UserForms.Add(FormName).Show
'
' Delete the form
ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=TempForm
End Sub



--
---
HTH

Bob


(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
Another option would be to create the userform with those controls on it--and
the code behind those controls, too.

Then just hide/show the controls you want hidden/shown.
 
I am gathering from your response and from Bob's response, that I just need
to start with a new userform.

Thanks for the help, it is much appreciated.
 
Bob created a new userform, but you could use an existing one.

I suggested that you create the extra controls while you're still designing the
form--not at run time.
 
You said you were creating a new userform, I just gave some code that
included that creation as well as the controls and the code.

--
---
HTH

Bob


(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
This seems explicit to me ...

I know I can create a new userform with new controls and new code for the
controls on the fly using VB.

--
---
HTH

Bob


(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
But it's out of context.

Add in the subject and the last couple of sentences and it looks like the OP,
well, you know what I think <bg>.
 

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

Back
Top