Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 187
  • Last Modified:

Protected worksheet Refresh table(not pivot)

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
Karen Schaefer
Asked:
Karen Schaefer
  • 3
  • 3
1 Solution
 
Lawrence SalvucciSystems ManagerCommented:
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
 
Karen SchaeferAuthor Commented:
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
 
Lawrence SalvucciSystems ManagerCommented:
Yes there is. I will post something when I get back to my office. Give me a little bit.
0
Independent Software Vendors: 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!

 
Karen SchaeferAuthor Commented:
ok thanks
0
 
Lawrence SalvucciSystems ManagerCommented:
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
 
Karen SchaeferAuthor Commented:
thanks that's great.
0

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now