Proteção da pasta de trabalho do Excel: como posso impedir que os usuários adulterem uma pasta de trabalho?

2

Eu tenho uma pasta de trabalho com muitas planilhas, macros e cálculos em andamento. Agora preciso enviar esta folha para fora (não prevista antes de ontem). Como posso bloqueá-lo para que os usuários:

  • não conseguem acessar / ver as macros?
  • não conseguem mostrar as folhas ocultas?
  • não conseguem ver o código ou adicionar código /

Eu passei e desbloqueei as células que eu quero que elas mudem. Linhas ocultas de botões e fórmulas e, em seguida, trancou-as. Planilhas ocultas. Eu agora protegi a planilha com uma senha.

No entanto, isso impede que os usuários acessem as macros / código? ou exibe as pastas? Se não, como posso bloquear a pasta de trabalho corretamente / com segurança / totalmente ?

Parece um tipo de proteção de segurança do tipo "big-brother", mas estou apenas certificando-me de que todas as células interconectadas não sejam alteradas acidentalmente ou que seja executada uma macro que não seja necessária para execução.

Muito obrigado

Michael.

    
por RocketGoal 13.09.2010 / 11:24

2 respostas

6

Primeiro, observe que a maioria dos recursos de proteção do Excel não são recursos de segurança. A maioria é facilmente quebrada ou contornada. Eles estão bem para impedir danos acidentais - mas não vão impedir ninguém que sabe o que estão fazendo e realmente quer ver os bits que você escondeu.

Dito isso, aqui estão algumas respostas:

Proteção Inicial

Você abordou isso, basicamente bloqueia células e oculta coisas e precisa.
Em seguida, proteja todas as folhas .
Em seguida, proteja a pasta de trabalho em si.

Folhas muito ocultas

As folhas podem ficar "muito" ocultas, o que significa que só podem ser exibidas por meio do VBA (elas não aparecem na lista de exibição na interface). Isso é feito simplesmente por meio de uma linha de VBA, que precisa ser executada pelo menos uma vez para acionar a alteração de configuração e não precisa ser mantida no arquivo depois de executada (mas isso pode ser útil para lembrar quais mais tarde):

Sheets("Sheet1").Visible = xlVeryHidden

Código VBA oculto

Defina uma senha em seu projeto. No editor do VBA, clique com o botão direito do mouse em seu módulo em Project Explorer , escolha <ProjectName> Properties e defina uma senha na guia Protection .

Observe que isso pode ser forçado a abrir brutalmente.

Macros ocultas

Eu assumo aqui que você quer dizer que você não quer que eles apareçam na lista de macros quando alguém abre a janela Run Macro ?

Para fazer isso, a macro desejada é um Private Sub ou um Function , isso os torna não visíveis como macros, mas ainda permite que eles sejam chamados por outro código no mesmo módulo.

Eu não acho que você não possa impedir as pessoas de executarem as macros visíveis e você não pode atribuir macros ocultas a botões.

    
por 13.09.2010 / 11:59
0

Se você quiser que os destinatários não alterem alguns bits acidentalmente, a proteção do Excel será suficiente. Mas se houver dados confidenciais que você não quer que as pessoas que recebem a pasta de trabalho possam ver, elas não são boas.

Se você deseja mostrar apenas os dados e não a formatação, uma maneira simples de "liberar" todos os dados ocultos é exportar cada folha como CSV e, em seguida, reimporte-os como uma nova pasta de trabalho do Excel. (O segundo passo é estritamente falando opcional, mas as pessoas não estão acostumadas com arquivos CSV, então é melhor enviar um arquivo do Excel como eles esperam.)

Se você quiser ter uma saída apresentável que as pessoas não possam modificar, imprima as folhas em um arquivo PDF e envie-as.

    
por 13.09.2010 / 20:21