Usuário com melhor resposta
Excel. Como criar um código no VBA para que a planilha abra somente com as macros?

Pergunta
-
Tenho apenas uma dúvida decisiva para que eu possa concluir minha planilha, esta é uma que eu criei para me ajudar no meu trabalho e tem algumas informações, por isso através do VBA (que eu não conheço muito) coloquei usuário e senha nela e algumas outras funções e também algumas células dela também são bloqueadas com senha, o problema é que para funcionar este macro o Excel tem que estar como...
Habilitar todas as macros (não recomendado, códigos possivelmente...)
Confiar no acesso ao modelo de objeto do projeto no VBA
... no Desenvolvedor/Segurança de Macro.
E alguns computadores da empresa estão desabilitados estas funções, e também alguém pode desabilitar, e assim tendo acesso a planilha, sendo que ela não vai pedir mais senha nem ter a integração que eu preciso.
O que eu devo fazer? Ou teria como então eu bloquear toda a planilha de forma que se a pessoa abrir sem as macros ela não poderá editá-la, e assim criar um código no VBA para que desbloqueie algumas células da planilha sendo assim, somente quando a planilha abrir com a macro ela poderá ser editada?
Respostas
-
Eu quando pretendo que habilitem as macros faço o seguinte:
1-Crio uma folha de rosto onde explicitamente meto um texto bem visivel a informar para ligar as macros, que irá ser escondido pelo evento open do livro, ou seja só irá mostrar esse texto se as macros estiverem inativas.
2-Escondo todas as outras folha com a propriedade veryhiden, só é possível usando VBA, e claro, só é possível mostrá-las com VBA.
3-Uso os eventos do livro: BeforeSave e AfterSave para ao guardar o livro as folhas fiquem sempre escondidas
Exemplo:
Private Sub Workbook_Open() 'colocar aqui o procedimento para login Rosto.Visible = xlSheetHidden Folha1.Visible = xlSheetVisible End Sub Private Sub Workbook_AfterSave(ByVal Success As Boolean) Rosto.Visible = xlSheetHidden Folha1.Visible = xlSheetVisible Me.Saved = True End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Folha1.Visible = xlVisible Folha1.Visible = xlSheetVeryHidden End Sub
Por fim, em todos os PCs onde este documento ficar, meto-o numa pasta que esteja incluida na lista de localizações fidedignas em opções / centro de fidedignidade- Marcado como Resposta Hezequias VasconcelosModerator quarta-feira, 14 de agosto de 2013 11:54
-
Como o Nando disse, alguém com um pouco de conhecimento em VBA será capaz de visualizar as planilhas que estão ocultas. Como sempre dizem: "se você não pode abrir mão da segurança dos dados, então o Excel talvez não seja a ferramenta correta pra você".
Só uma correção do código:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Rosto.Visible = xlVisible Folha1.Visible = xlSheetVeryHidden End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Hezequias VasconcelosModerator quarta-feira, 14 de agosto de 2013 11:54
Todas as Respostas
-
Eu quando pretendo que habilitem as macros faço o seguinte:
1-Crio uma folha de rosto onde explicitamente meto um texto bem visivel a informar para ligar as macros, que irá ser escondido pelo evento open do livro, ou seja só irá mostrar esse texto se as macros estiverem inativas.
2-Escondo todas as outras folha com a propriedade veryhiden, só é possível usando VBA, e claro, só é possível mostrá-las com VBA.
3-Uso os eventos do livro: BeforeSave e AfterSave para ao guardar o livro as folhas fiquem sempre escondidas
Exemplo:
Private Sub Workbook_Open() 'colocar aqui o procedimento para login Rosto.Visible = xlSheetHidden Folha1.Visible = xlSheetVisible End Sub Private Sub Workbook_AfterSave(ByVal Success As Boolean) Rosto.Visible = xlSheetHidden Folha1.Visible = xlSheetVisible Me.Saved = True End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Folha1.Visible = xlVisible Folha1.Visible = xlSheetVeryHidden End Sub
Por fim, em todos os PCs onde este documento ficar, meto-o numa pasta que esteja incluida na lista de localizações fidedignas em opções / centro de fidedignidade- Marcado como Resposta Hezequias VasconcelosModerator quarta-feira, 14 de agosto de 2013 11:54
-
Como o Nando disse, alguém com um pouco de conhecimento em VBA será capaz de visualizar as planilhas que estão ocultas. Como sempre dizem: "se você não pode abrir mão da segurança dos dados, então o Excel talvez não seja a ferramenta correta pra você".
Só uma correção do código:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Rosto.Visible = xlVisible Folha1.Visible = xlSheetVeryHidden End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Hezequias VasconcelosModerator quarta-feira, 14 de agosto de 2013 11:54