View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.misc
iliace iliace is offline
external usenet poster
 
Posts: 229
Default urgent help with lock excel macros!!!

Do you have a worksheet called CommandBars?

Do you have a global declaration for excelLocked?

If your workbook doesn't have a worksheet called CommandBars, then the
macro above has no way of knowing which toolbars it disabled or hid.
You can try something like this to help you fix the problem. It will
enable ALL your command bars and menus, and it will show them. You
could prompt each time it happens, but it would take hours to do,
theoretically.

Public Sub fixLockedExcel()
With Application
On Error Resume Next
For Each cbBar In .CommandBars
cbBar.Visible = False
cbBar.Enabled = False
Next cbBar

For Each ctrl In .CommandBars.ActiveMenuBar.Controls
ctrl.Visible = True
ctrl.Enabled = True
Next ctrl
On Error GoTo 0
End With
End Sub

On Dec 27, 7:22 am, wrote:
Hi to everyone,
I was looking for a way to make Excel like viewer. Surfing in the news
group I found this macro.
It works to lock Excel but now I can't unlock Excel back!!

Could someone help me?
I post it just below and hear is the link were I found it:http://groups.google.com/group/micro...isc/browse_thr...

Public Sub LockdownExcel()
Dim objTemp As Object
Dim cbBar As CommandBar
Dim ctrl As CommandBarControl
Dim cbarCount As Integer
Dim ctrlCount As Integer

'disable keys and change settings
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.Visible = False
.OnKey "^X", ""
.OnKey "^x", ""
.OnKey "^C", ""
.OnKey "^c", ""
.OnKey "^V", ""
.OnKey "^v", ""
.OnKey "^9", "ThisWorkbook.UnlockExcel"
.CutCopyMode = False
.DisplayStatusBar = False
.DisplayFormulaBar = False
.IgnoreRemoteRequests = True
.ActiveWindow.DisplayHeadings = False
.ActiveWindow.DisplayWorkbookTabs = False
.WindowState = xlMaximized
.ActiveWindow.WindowState = xlMaximized
.EnableEvents = False

.CommandBars.DisableAskAQuestionDropdown = True
.CommandBars.DisableCustomize = True

cbarCount = 0
On Error Resume Next
For Each cbBar In .CommandBars
If cbBar.Visible Then
cbarCount = cbarCount + 1
Worksheets("CommandBars").Cells(cbarCount, 1).Value =
cbBar.Name
cbBar.Visible = False
cbBar.Enabled = False
End If
Next cbBar

ctrlCount = 0
For Each ctrl In .CommandBars.ActiveMenuBar.Controls
If ctrl.Visible Then
ctrlCount = ctrlCount + 1
Worksheets("CommandBars").Cells(ctrlCount, 3).Value =
ctrl.Index
ctrl.Visible = False
ctrl.Enabled = False
End If
Next ctrl
On Error GoTo 0

.DisplayAlerts = True
.ScreenUpdating = True
.Visible = True
.EnableEvents = True
End With
excelLocked = True
End Sub

Public Sub UnlockExcel()
Dim cbBar As CommandBar
Dim cbarCount As Integer, cbarTotal As Integer
Dim ctrl As Control
Dim ctrlCount As Integer, ctrlTotal As Integer

'restore command bars
With Worksheets("CommandBars")
cbarTotal = CInt(.Cells(1, 2).Value)
ctrlTotal = CInt(.Cells(1, 4).Value)

On Error Resume Next

For ctrlCount = 1 To ctrlTotal

Application.CommandBars.ActiveMenuBar.Controls(.Ce lls(ctrlCount,
3).Value).Enabled = True

Application.CommandBars.ActiveMenuBar.Controls(.Ce lls(ctrlCount,
3).Value).Visible = True
.Cells(ctrlCount, 3).Value = ""
Next ctrlCount

For cbarCount = 1 To cbarTotal
Application.CommandBars(.Cells(cbarCount,
1).Value).Enabled = True
Application.CommandBars(.Cells(cbarCount,
1).Value).Visible = True
.Cells(cbarCount, 1).Value = ""
Next cbarCount

On Error GoTo 0
End With

'restore shortcut keys and other settings
With Application
.CommandBars.DisableAskAQuestionDropdown = False
.CommandBars.DisableCustomize = False
.OnKey "^X"
.OnKey "^x"
.OnKey "^C"
.OnKey "^c"
.OnKey "^V"
.OnKey "^v"
.OnKey "^9", "ThisWorkbook.LockdownExcel"
.CutCopyMode = xlCopy
.DisplayStatusBar = True
.DisplayFormulaBar = True
.IgnoreRemoteRequests = False
.ActiveWindow.DisplayHeadings = True
.ActiveWindow.DisplayWorkbookTabs = True
End With
excelLocked = False
End Sub

Many thanks to everyone!
Bye,
Stefano.