Insert New Sheet De-activates Current Sheet VBA Workaround?

F

facmanboss

When I insert a new sheet in a workbook, there are some things I do to it via
VBA code before it finishes activating. However, I would like to restore the
sheet that was active PRIOR to the insert as the active one after the new
sheet finishes it's setup. The events available in Excel don't seem amenable
to this. How can I do this with VBA code?
Thanks in advance,
facmanboss
 
G

Gord Dibben

Set prior = ActiveSheet
With Worksheets.Add
'run your code on added sheet
End With
prior.Activate


Gord Dibben MS Excel MVP
 
F

facmanboss

Thanks. I wasn't clear in my description. My bad. This looks like it works
fine from code being run to add a new sheet. Here is my scenario. The user
selects the Excel Menu Insert->Worksheet. No code involved, Excel does it.
Excel changes the activesheet to the new one.

I can't figure out how to make the prior sheet active again since there is
no code running to test with and the user needs to be able to use the Insert
menu only to add a new sheet.
 
G

Gord Dibben

You wrote of using code to do something to the new sheet after it is
inserted/added.

When/how do you activate that code?

Why not just add the code I posted at the top of your code and assign it all
to a button?

Tell users to hit the button when inserting a new sheet.


Gord
 
F

facmanboss

Unfortunately, that's the obvious way. We don't want end users having to
perform an action for this to occur. I was hoping there was a way to
intercept the Menu Insert->Worksheet such that it would invoke some of my
code where I could add the new sheet per your suggestion rather than letting
Excel do it. If there isn't an easy way, then it isn't worth pursuing.
Thanks.
 
G

Gord Dibben

Place in Thisworkbook module

Private Sub Workbook_NewSheet(ByVal Sh As Object)
'run the code to do whatever on the new sheet
're-activate the original sheet
End Sub


Gord
 

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