re-creating vbcomponent

J

JYH

I am trying to create a UserForm X. If, for whatever reason, form X
already exist, I want to remove it and re-create it again.

Sounds simple, right?

Here's the code:
Dim TempForm As Object ' VBComponent
On Error Resume Next
Set TempForm = ThisWorkbook.VBProject.VBComponents("Bob")
ThisWorkbook.VBProject.VBComponents.Remove TempForm
On Error GoTo 0
'Set TempForm = Nothing
Set TempForm =
ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)
ThisWorkbook.VBProject.VBComponents(TempForm.name).name = "Bob"

Last line gives me a "Run time error 75: path file access error"...

Any suggestion?

And, before you ask, even god have less privilege than me on that
machine...
 
J

Jim Rech

It seems that VB considers component Bob to exist even after removed. An
intermediate save fixed that for me in Excel 2010:

Sub a()
Dim TempForm As Object ' VBComponent
On Error Resume Next
Set TempForm = ThisWorkbook.VBProject.VBComponents("Bob")
ThisWorkbook.VBProject.VBComponents.Remove TempForm
On Error GoTo 0
ThisWorkbook.Save
ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm).Name = "Bob"
End Sub

Jim
 
J

JYH

Thank you but I would prefer not to save someone else's workbook. (I
realised I meant ACTIVEWORKBOOK and <U>not</U> THISWORKBOOK.)

However you seem to have pointed something there: Since it is
understandable that you can not re-use a component until its
eradication have been confirm by a save, my best solution may be to
use it and delete its content. But then, not only would I make it
harder to clean (each and every component) but also would most likely
get the same problem when I will try to re-add the same controls...
( A textbox name X on a form Y could not be re-created under the same
name after being suppressed once from that same form...)
 

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