Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Protected worksheet Refresh table(not pivot)

Posted on 2016-07-26
6
Medium Priority
?
140 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 2000 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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

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

Use Windows Task Scheduler to print a Word document weekly so your printer ink won't dry out.
This article describes how you can use Custom Document Properties to store settings and other information in your workbook so that they will be available the next time you open the workbook.
Graphs within dashboards are meant to be dynamic, representing data from a period of time that will change each time the dashboard is updated with new data. Rather than update each graph to point to a different set within a static set of data, t…
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.

664 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