Shared Spreadsheet w/Password Protect VBA shows as ‘Read Only’

Amarilis Abreu

New Member
Joined
Aug 27, 2011
Messages
7
Hi,
I want to create a shared spreadsheet where 10 to 12 users will have access to their corresponding tab. I found online 2 VBA functions to create a ‘power user’ password that would open all tabs at once and ‘individual user’ password for each tab. The code closes all tabs when you are done so there is not risk of forgetting to lock your tab. The 2 problems I’m having are:
1. Spreadsheet shows as ‘read only’ and forces other user to ‘save as’ their changes.
2. If one user is working in their tab, a second user login in can view the first’s user info without password access.
How can I solve this? Can I send the spreadsheet attached?
Thank you!
Amarilis
 

Excel Facts

Save Often
If you start asking yourself if now is a good time to save your Excel workbook, the answer is Yes
Hello and welcome to The Board.
I always recommend avoiding the use of shared workbooks - I have found that they are more trouble than they are worth.
As an alternative, I provide identical workbooks to users and have used VBA to merge the data into a Master workbook.
Some useful links:
http://blog.contextures.com/archives/2008/11/18/avoiding-shared-workbooks-in-excel/
http://office.microsoft.com/en-us/e...vailable-in-shared-workbooks-HP005201080.aspx
http://support.microsoft.com/kb/302911/en-us
http://office.microsoft.com/en-us/excel-help/administration-of-shared-workbooks-HA001013057.aspx
 
Upvote 0
Thanks so much Derek. I think you have effectively persuaded me not to use Shared Spreadsheet for this purpose. Do you think however, that Access might be the best option for this? My biggest fear with Access (besides my ignorance, of course), is that Excel provides the simplicity of coping/dragging the same value across rows and column. This was a big favorite among the users since they have to type similar values under salary rate, expenses and revenue in a budget sheet throughout the year. Is there any way I can create a form in access that would still allow them to do that without accessing the tables?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
Thanks!<o:p></o:p>
 
Upvote 0
Perhaps I could ask a few questions that would help me, or others who may see this post, give some advice.
1. Which version of Microsoft Office is being used?
2. What is the purpose of having a password for your process? Is it to just prevent accidental changes to another's data? Or is it to prevent it being seen?
3. You have given some indication of your Access skills but how comfortable are you with VBA?
I created and manage a Data Warehouse where Access also has links to Excel workbooks to retrieve data but I don't think that would be the best option for workbooks that may be used frequently - password protected workbooks would be a problem. My thoughts would be towards an Excel VBA solution where the MASTER workbook would access the other workbooks and password-protected workbooks could be managed.
 
Upvote 0
Well, that's pretty much the way we have it right now: <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
1. We have a spreadsheet per user where each director inputs their budget figures (salaries, revenue and expenses). There are a total of 33 departments –about 3 departments assigned to each director- so most spreadsheets contain 3 or so tabs.<o:p></o:p>
<o:p></o:p>
2. Currently, we have each spreadsheet located in each director’s folder and the shared network privileges are set up to grant specific user access to each folder.<o:p></o:p>
<o:p> </o:p>
3. A master spreadsheet with 33 tabs captures the information thought Nested formulas and Vertical Lookups and during budget season we do about 3 rollups per day to analyze the data that’s being updated. <o:p></o:p>
<o:p> </o:p>
4. On top of that we have a few separate spreadsheets that calculate (1) the Full Time Equivalency of each employee based on their work hours and part time, full time or substitute status.<o:p></o:p>
<o:p> </o:p>
5. Additionally, (2) most utilities expenses that hit the overhead departments are allocated to the ‘revenue generating’ department through a different spreadsheet that considers percentage they get hit with according to their square footage and or employee head count.<o:p></o:p>
<o:p> </o:p>
6. In our experience, having so many spreadsheet for what sometimes seems redundant data, has resulted in errors and unproductive time verifying if totals match each spreadsheet, if a new general ledger code has been added to 1 section and not all, if a row content has been shifted and info captured is incorrect, etc. <o:p></o:p>
<o:p> </o:p>
That’s why I thought that reducing the multiple spreadsheets situation into one, will allow one sheet per department and provide them the privacy they need –with password protection– so other directors won’t see confidential matters such as salary, etc.<o:p></o:p>
<o:p> </o:p>
My access knowledge is very basic (all we have right now are tables from our accounting software –Great Plains– from where I run queries to obtain data and reports but they are already established) but if this is the best way to go, I’m not afraid to buy Access for Dummies and go step by step.<o:p></o:p>
<o:p> </o:p>
Thanks Derek,<o:p></o:p>
 
Upvote 0
I forgot to tell you which Excel Version (About 50% of the users have 2007 and 50% 2003). Thanks!
Well, that's pretty much the way we have it right now: <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
1. We have a spreadsheet per user where each director inputs their budget figures (salaries, revenue and expenses). There are a total of 33 departments –about 3 departments assigned to each director- so most spreadsheets contain 3 or so tabs.<o:p></o:p>
<o:p></o:p>
2. Currently, we have each spreadsheet located in each director’s folder and the shared network privileges are set up to grant specific user access to each folder.<o:p></o:p>
<o:p></o:p>
3. A master spreadsheet with 33 tabs captures the information through Nested formulas and Vertical Lookups and during budget season we do about 3 rollups per day to analyze the data that’s being updated. <o:p></o:p>
<o:p></o:p>
4. On top of that we have a few separate spreadsheets that calculate (1) the Full Time Equivalency of each employee based on their work hours and part time, full time or substitute status.<o:p></o:p>
<o:p></o:p>
5. Additionally, (2) most utilities expenses that hit the overhead departments are allocated to the ‘revenue generating’ departments through a different spreadsheet that considers percentage they get hit with according to their square footage and or employee head count.<o:p></o:p>
<o:p></o:p>
6. In our experience, having so many spreadsheet for what sometimes seems redundant data, has resulted in errors and unproductive time verifying if totals match each spreadsheet, if a new general ledger code has been added to 1 section and not all, if a row content has been shifted and info captured is incorrect, etc. <o:p></o:p>
<o:p></o:p>
That’s why I thought that reducing the multiple spreadsheets situation into one, will allow one sheet per department and provide them the privacy they need –with password protection– so other directors won’t see confidential matters such as salary, etc.<o:p></o:p>
<o:p></o:p>
My access knowledge is very basic (all we have right now are tables from our accounting software –Great Plains– from where I run queries to obtain data and reports but they are already established) but if this is the best way to go, I’m not afraid to buy Access for Dummies and go step by step.<o:p></o:p>
<o:p></o:p>
Thanks Derek,<o:p></o:p>
 
Upvote 0
A quick response now and I will pick up any reply later today ...
Personally I would not consider converting to Access while the two versions are being used - that could make things difficult to manage.
I also wonder how comfortable the users would be if asked to use Access instead of Excel - experience has shown that people are usually much happier with the latter.

The process does seem a bit complex and I would not want to work with a very large workbook as I would be concerned about the risk of corruption.

Could you explain what you meant by "3 rollups per day"?
Will the workbooks have the same structure (worksheet name, same columns etc.) that could be managed programmatically?
 
Upvote 0
I know, I was thinking about that last night. I work for a Non for Profit Organization and most of the Directors are exceptional in Social Services related matters but computer skills are not their forte. I’m afraid Access would be a challenge for them. Besides, what I love about Excel is that once all structure is setup, I can add color coding and charts that would make the budget more attractive and easier to understand.
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p> </o:p>
I don’t think I mind having one spreadsheet with all the information since IT backs up all contents of the shared drives nightly and in past experiences we have been able to successfully retrieve lost data.
<o:p> </o:p>
I think the biggest problem we are currently having is that given the numerous links from so many spreadsheets into the master one, the files are very heavy and each time we roll up (we open all spreadsheets, refresh all formulas and links and update pivot tables so all charges are updated in the master workbook) files show as ‘Not Responding’ and seem as there are about to crash any minute.
<o:p> </o:p>
How about an option in which the same spreadsheet will:
1. Be password protected w/individual passwords
2. Not shared but also not available as ‘read only’ so when one user is working on his/her tab, other users can’t see what they are working on?
3. Hide all tabs again after spreadsheet is closed.
Is this possible?
Thanks Derek for all the time you have dedicated to this J
 
Upvote 0
You said "I don’t think I mind having one spreadsheet with all the information since IT backs up all contents of the shared drives nightly and in past experiences we have been able to successfully retrieve lost data" but how would the Directors feel if the workbook was 'lost' late afternoon and they were asked to re-input everything they had done that day?
I know that it would be possible, using VBA, to have "very hidden" worksheets that could be made visible on giving the correct password from a prompt received on opening the workbook:
Code:
Private Sub Workbook_Open()
Dim wb As Workbook
Dim strPassword As String
Set wb = ThisWorkbook
strPassword = InputBox("Password?")
If strPassword = "Test" Then
    wb.Worksheets("Test").Visible = xlSheetVisible
    wb.Worksheets("Test2").Visible = xlSheetVeryHidden
End If
Set wb = Nothing
End Sub
The above is a very 'simple' example but would need to be supported with Save & Close events to again hide all the worksheets (except one).
However, some of the 'Share Workbook' options (e.g. shared workbook password, that you would not need anyway) seem to prevent the 'Open' event from firing. Remember that I don't like shared workbooks! In my test I noticed that you cannot have 'Tables' in a shared workbook and I really like using them. Because I cannot test it, I don't know whether/how that would really work when more than one person opens the workbook.

It is difficult to know exactly how I would be proceed without seeing the workbooks (and I would not accept any offer for them to be made available - there are several reasons for this) but my current thoughts are:
1. Each Director would have their own copy of the workbook with only their worksheets/data.
2. The workbooks would have a macro which, when run, would copy the relevant worksheets* to a 'master' drive/folder, overwriting previous versions.
3. A MASTER workbook would have a macro which, when run, would merge the required worksheets* and produce the required reports.

* I would use a "Control" worksheet to list the name of the worksheets to be copied

(I don't think that you mentioned your level of VBA skills)

An alternative to "3", and the one that I would actually use, would be to have those workbooks (in the 'master' drive/folder) linked to an Access database as tables - my MASTER workbook would have those Access tables linked to it and refreshed when the workbook is opened. There would be VBA code to make 'static' copies of the workbook with its data as, for example, end-of-month historic copies. This alternative would require much less VBA work and would be much better if the column headers differ in each workbook. I do actually use this technique in my Data Warehouse to enable users to pass data to Access which then produces a formatted Access Report "in real time" without them having to open the Access application.
 
Upvote 0
Hi Derek,
I'm so sorry I didn't reply to you sooner. School is back and doesn’t leave much time for anything else. Thanks so much for all your help with this!!! I’ll try the suggestions from you last post. Thx!!<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
 
Upvote 0

Forum statistics

Threads
1,224,566
Messages
6,179,555
Members
452,928
Latest member
101blockchains

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top