View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Delete modules programmatically and save

You can't save in the same macro that did the deletion. The deletion
doesn't actually take place until the macro ends.

In the macro, use application.Ontime to run a sum that saves the workbook

application.Ontime now,"MacroToSaveWorkbook"

This allows the code to end and then the save is performed.

--
Regards,
Tom Ogilvy

Brijesh Shah wrote in message
...
HI,

I have hit a wall here. I delete some modules using VBComponents.Remove.
After that, even if I save the workbook using Save method, the changes are
not saved. Does anyone has a clue? After I run the macro below it still

asks
me if I want to save the changes when i close the workbook. Note the macro
to delete the modules is in the same workbook. So the macro is trying to
delete itself too.

Code

Dim obj As Object
Dim VBComps As Variant

Set VBComps = ThisWorkbook.VBProject.VBComponents

For Each obj In VBComps
If obj.Type = 1 Or obj.Type = 2 Then
VBComps.Remove obj
End If
Next

ThisWorkbook.Save

Thanks in advance,

Brij