Amigos, gostaria de saber se alguém tem alguma ideia para esta situação.
Estou montando um relógio ponto (bem simples) que me pediram aqui no trabalho. Usando VBA, porque preciso garantir critérios de segurança e restrições (que me deram).
Para implementar estas questões de segurança e restrições, entre os recursos que estou inserindo, coloquei 2 códigos, um deles retira a visualização de tudo (barras cabeçalhos. etc.), e o outro desabilita o botão direito do mouse.
São eles:
Sub FullScreen_ON()
Application.ScreenUpdating = False
Dim i As Integer
Dim barras, nTela, Cont
On Error Resume Next
For Each barras In Application.CommandBars
barras.Enabled = False
Next
Application.DisplayFullScreen = True
ActiveWindow.DisplayHeadings = False
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHorizontalScrollBar = False
'ActiveWindow.DisplayVerticalScrollBar = False
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayStatusBar = False
Application.ScreenUpdating = True
End Sub
Sub MenuBotaoDireito_OFF()
Application.CommandBars("Worksheet Menu Bar").Enabled = False
Application.CommandBars("Cell").Enabled = False
Application.CommandBars("Sheet").Enabled = False
Application.CommandBars("Ply").Enabled = False
Application.CommandBars("Row").Enabled = False
Application.CommandBars("Column").Enabled = False
End Sub
Porém, estou naquele velho dilema: Chamando os códigos ao abrir a planilha:
Private Sub Workbook_Open()
'Seção de segurança
'módulo Mod_Security
Call FullScreen_ON
Call MenuBotaoDireito_OFF
Application.Visible = False
'Inicia o ponto
frm_ponto.Show
End Sub
Esses códigos só vão executar quando o usuário habilitar as macros. (O que seria um ponto frágil).
Dentre as opções que conheço, não atendem:
- Registrar as macros não será possível;
- Mexer na configuração dos PCs/Excel para rodar as macros automaticamente também não será possível;
- Editar a ribbon seria uma ideia, mas não é viável, porque no fechamento do mês vou precisar restaurar o Excel para o "padrão", para trabalhar com ele como planilha eletrônica mesmo (fazer cálculos etc).
Então,gostaria de saber se alguém teria uma outra sugestão de como lidar com isso (por exemplo, há como, ao fechar a planilha, incluir um código no evento BeforeClose que oculte a ribbon, por exemplo, somente nesta pasta de trabalho?
Resumindo, eu queria achar uma forma de trocar comandos que se refiram ao Excel por comandos que se refiram à pasta de trabalho:
Por exemplo, comandos como estes:
Application.DisplayStatusBar = True
ActiveWindow.DisplayHeadings = True
Por algo mais ou menos assim:
ThisWorkbook.DisplayStatusBar = True
ThisWorkbook.Window.DisplayHeadings = True
Alguém tem alguma ideia?
Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.
Gilmar
Postado : 21/11/2014 8:13 am