Solved

Excel - VBA - Prevent files being opened into Excel Session

Posted on 2000-03-01
3
491 Views
Last Modified: 2010-05-18
I have developed an integrated excel workbook with customised toolbars.  When the workbook opens it runs code to hide all microsoft toolbars and opens the customised toolbars.

I would like to be able to prevent users of the spreadsheet opening any other files while the spreadsheet is open (eg if a user double clicks on an excel file in explorer it would normally open the excel file into the current Excel session - is it possible to have this file redirected into another session of excel - ie the user would see the normal excel workspace or at least prevent the file being opened.
0
Comment
Question by:dhadland
  • 2
3 Comments
 
LVL 17

Expert Comment

by:calacuccia
ID: 2574806
Hi dhadland,

In the workbook specified you have to do following things:

1) Add a class module (right click on project in porject tree, Inert/Class Module)

2) In the class module, called Class1 by default, insert this code, it will close the opened workbook straight away.

Public WithEvents App As Application

Private Sub App_WorkbookOpen(ByVal Wb As Excel.Workbook)
ActiveWorkbook.Close
End Sub

3) In any of your normal modules, enter this code:

Dim X As New Class1

Sub InitializeApp()
    Set X.App = Application
End Sub

4) In the list of code runned on the workbook open event (the workbook you specified above), call the InitializeApp macro, just adding the line

InitializeApp

in one of the macros which runs on opening the workbook


This is sufficient to prevent the user from opening other files or from within Excel, or from the Explorer. It's necessary to run the InitializeApp macro to activate the application defined as App.

Now how to open another Excel instance, I'm not sure yet. I'm well acquinted with Excel VBA, but not if going outside.

Good Luck

Calacuccia
0
 
LVL 17

Accepted Solution

by:
calacuccia earned 50 total points
ID: 2574818
Apologies for the typing errors.
0
 
LVL 1

Author Comment

by:dhadland
ID: 2585644
Calcuccia

Thanks for help.

Comment -  the code closed files inlcuding the one the code is in - so added an IF statement to the -

Private Sub App_WorkbookOpen(ByVal Wb As Excel.Workbook)
     ActiveWorkbook.Close
End Sub

to exclude the main  file.

dhadland
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now