Hi again Alan,
Amendment. Need to cancel the On Error. Insert in code as follows
On Error Resume Next
Set Btn1 = Me.Controls("Butt1")
On Error GoTo 0
--
Regards,
OssieMac
"OssieMac" wrote:
> Hi Alan,
>
> Note: Space and underscore at the end of a line is a line break in an
> otherwise single line of code.
>
> Private Sub UserForm_Activate()
>
> Dim Btn1 As MSForms.Control
>
> On Error Resume Next
> Set Btn1 = Me.Controls("Butt1")
>
> If Btn1 Is Nothing Then
> Set Btn1 = Me.Controls.Add _
> ("Forms.CommandButton.1", "Butt1", True)
>
> With Btn1
> .Caption = "My button"
> .Top = 100
> .Left = 100
> .Height = 20
> .Width = 100
> End With
> Else
> 'Insert your code here to handle if button already exists
> MsgBox "Cannot Add Butt1. Already exists"
> End If
>
>
> End Sub
>
>
> --
> Regards,
>
> OssieMac
>
>
> "AlanGriffithKapitiNZ" wrote:
>
> > I would like to generate various controls on a skeleton userform (eg, the
> > number may vary with the occasion) and have tried
> > Private Sub UserForm_activate()
> > Stop
> > Dim obj As Object
> > Set obj = Me
> > Set obj = obj.Add("MSForms.CommandButton.1", "Butt1", True)
> >
> > but when the form opens I receive the error message
> > Runtime error '-2147221005(800401f3':
> > Invalid class string
> >
> > What am I doing wrong, please?
> >
> >
|