Solved

Protected worksheet Refresh table(not pivot)

Posted on 2016-07-26
6
89 Views
Last Modified: 2016-07-27
I need to protect my worksheet, but still be able to refresh the underlying data(table).  

My worksheet is an Invoice with the body of the invoice is a table linked to underlying query.  How do I refresh this data when I have locked down (protected worksheet) w/password?  The only code I can find seems to unlock & Lock by storing the password within the VBA.   There has to be another method.
0
Comment
Question by:Karen Schaefer
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 1

Accepted Solution

by:
Lawrence Salvucci earned 500 total points
ID: 41730430
This is how I do it. I have some VBA code that will unlock the sheet, then refresh the table, then lock the sheet again. You can just put the "RefreshConnections" function on a command button on your worksheet somewhere. Then the user just clicks on the button and it runs that code and does everything I mentioned. There are 4 pieces of code that I use. Just change the ("strsIVAL") to the sheet name and change the "strs" to the password you want to use to lock your sheet. Change that in both the UNLOCKSHEETS & LOCKSHEETS code below. Then change the name of the file ("Stocking Program Monitor.xlsm") in the REFRESHALLCONNECTIONS code below. Put all this in a module and then put the RefreshConnections code linked to a command button. Or just run the macro from the "View Macros" popup screen.

Sub UnlockSheets()
Worksheets("strsIVAL").Unprotect Password:="strs"
End Sub

Sub LockSheets()
Worksheets("strsIVAL").Protect Password:="strs"
End Sub

Sub RefreshAllConnections()
Workbooks("Stocking Program Monitor.xlsm").RefreshAll
End Sub

Sub RefreshConnections()
UnlockSheets
RefreshAllConnections
LockSheets
End Sub

Open in new window

0
 

Author Closing Comment

by:Karen Schaefer
ID: 41731508
Thanks that did the trick.  Quick question is there a way to standardize this so it can be used in multiple workbooks.  Global variable?  active workbook instead of hard coding the workbook name?
0
 
LVL 1

Expert Comment

by:Lawrence Salvucci
ID: 41731527
Yes there is. I will post something when I get back to my office. Give me a little bit.
0
MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

 

Author Comment

by:Karen Schaefer
ID: 41731530
ok thanks
0
 
LVL 1

Expert Comment

by:Lawrence Salvucci
ID: 41731699
You can use this code to lock and unlock the sheets. This will just unlock or lock all the sheets. You still need to hard code the password though.

Sub LockSheets()
Dim ws As Worksheet
Dim pwd As String

pwd = "BC1958"  ' Put your password here
For Each ws In Worksheets
    ws.Protect Password:=pwd
Next ws
End Sub

Sub UnlockSheets()
Dim ws As Worksheet
Dim pwd As String

pwd = "BC1958"  ' Put your password here
For Each ws In Worksheets
    ws.Unprotect Password:=pwd
Next ws

End Sub

Open in new window


Then you can use this to refresh your connection to your table

Sub RefreshAllConnections()
Workbooks(ThisWorkbook.Name).RefreshAll
End Sub

Open in new window


Let me know if you need anything else.
0
 

Author Comment

by:Karen Schaefer
ID: 41731823
thanks that's great.
0

Featured Post

Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

Question has a verified solution.

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

Suggested Solutions

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.

752 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