ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Using automatically entered code (https://www.excelbanter.com/excel-programming/338874-using-automatically-entered-code.html)

Tim[_44_]

Using automatically entered code
 
I am having some trouble inserting objects onto a form and using
automatically inserted code. I start with a blank userform. The
segment below addes an optionbuttion and writes some code to handle
clicks on it. Notice the commented out "OptionButton1_Click". Of
course, it needs to be commented out because otherwise
UserForm_Initialize() would not compile because it does not exist at
the program's start. The new sub is created ok, but when I click on
the resulting option button, nothing happens. Why not?????

Private Sub UserForm_Initialize()
Dim cntNew As MSForms.Control

Set cntNew = UserForm2.Controls.Add("Forms.OptionButton.1")
With cntNew
.Value = False
With
Application.VBE.ActiveVBProject.VBComponents("User Form2").CodeModule
.InsertLines .CountOfLines + 1, ("Sub " & cntNew.Name &
"_Click()")
.InsertLines .CountOfLines + 1, ("msgbox ""Here - New
Subroutine!!!!!""") ' tag
.InsertLines .CountOfLines + 1, ("End Sub")
End With
MsgBox .Name
' OptionButton1_Click
End With
Set cntNew = Nothing

End Sub


Jon[_20_]

Using automatically entered code
 
In searching there is probably a way to do this but I couldn't find it. One
alternative I saw was to include the control on the userform, but set its
visible property to false until needed. Perhaps that would be easier as the
code is there from the beginning.


"Tim" wrote in message
ups.com...
I am having some trouble inserting objects onto a form and using
automatically inserted code. I start with a blank userform. The
segment below addes an optionbuttion and writes some code to handle
clicks on it. Notice the commented out "OptionButton1_Click". Of
course, it needs to be commented out because otherwise
UserForm_Initialize() would not compile because it does not exist at
the program's start. The new sub is created ok, but when I click on
the resulting option button, nothing happens. Why not?????

Private Sub UserForm_Initialize()
Dim cntNew As MSForms.Control

Set cntNew = UserForm2.Controls.Add("Forms.OptionButton.1")
With cntNew
.Value = False
With
Application.VBE.ActiveVBProject.VBComponents("User Form2").CodeModule
.InsertLines .CountOfLines + 1, ("Sub " & cntNew.Name &
"_Click()")
.InsertLines .CountOfLines + 1, ("msgbox ""Here - New
Subroutine!!!!!""") ' tag
.InsertLines .CountOfLines + 1, ("End Sub")
End With
MsgBox .Name
' OptionButton1_Click
End With
Set cntNew = Nothing

End Sub




Tim[_44_]

Using automatically entered code
 
The problem being that I don't know how many controls will need to
exist on the form before the form needs to be loaded.


Jon[_20_]

Using automatically entered code
 
How many variations would there be? You could have several similar userforms
with the appropriate controls, that load depending on the form needed. Or
you could change the captions on the controls programmatically to suit your
needs or a combination of both. I think it would be a lot easier to program
that way. Or you could add controls for every possibility and "grey" them
out if they are not usable.

Jon

"Tim" wrote in message
oups.com...
The problem being that I don't know how many controls will need to
exist on the form before the form needs to be loaded.




Tim[_44_]

Using automatically entered code
 
Yea. I suppose I could try something like that. I was just hoping for
something more elegant.
Thanks much, Jon;
-Tim



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

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