Ir ao conteúdo

Proteção No Excel


filipesm

Posts recomendados

Postado

aí pessoal, gostaria saber se tem como fazer isso q eu quero.

Eu tenho uma planilha q fica no servidor da empresa, onde vários funcionários precisam acessa-la e altera-la, porém não quero q salvem com outro nome ou em outro lugar (disquete, cd ou mandem por email), são dados q não popdem sair da empresa. Se tiverem alguma opnião, postem aqui, q será muito útil.

Desde já agradeço.

Postado

Vai no menu ferramentas>>Proteger>>Proteger planilha (excel 2000 não lembro se no 97 também tem esse recurso.).

Ai você coloca uma senha e pronto, a planilha vai continuar editavel porém ninguém pode fazer alteraçoes drasticas nela.

Espero ter ajudado...

Postado
Postado Originalmente por Adriano Silva@19 jan 2004, 10:35

Vai no menu ferramentas>>Proteger>>Proteger planilha (excel 2000 não lembro se no 97 também tem esse recurso.).

Ai você coloca uma senha e pronto, a planilha vai continuar editavel porém ninguém pode fazer alteraçoes drasticas nela.

Espero ter ajudado...

falou e disse.. e como nosso amigo adriano falou !

se não conseguir retorne

um abraço :bye:

Postado

Valeu pelas respostas acima, mas não é bem isso... eu preciso q eles alterem mas não possam copiar os dados para outo lugar... tipo um bloqueio dos menus salvar como, imprimir, copiar e colar...

  • Membro VIP
Postado

Bom, infelizmente não tenho tempo desenvolver uma solução completa, mas vou lhe dar algumas "peças do quebra-cabeças": acho que você só vai conseguir isso (desabilitar menus, evitar cópias, etc...) usando um pouco de código VBA.

Você já usou o editor do Visual Basic no Excel? Conhece um pouco da biblioteca de objetos do Excel? As dicas que eu tenha são baseadas nisso, então vamos lá:

Tecle "Alt+F11" para entrar no editor do Visual Basic. Nota: essas dicas são baseadas no Excel97, mas deve funcionar nos outros também.

1) No objeto chamado "EstaPasta_de_trabalho", você pode evitar que a planilha seja salva, usando o evento Workbook_BeforeSave, colocando o argumento "SaveAsUI" com o valor "True" para evitar exibir a caixa de diálogo "Salvar como", e o argumento "Cancel" com valor "True" para cancelar o salvamento. Você poderia, por exemplo, colocar uma senha para que só você pudesse salvá-la:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

   Const Senha As String = "123456"
   Dim SenhaDigitada As String
   
   SenhaDigitada = InputBox("Informe a senha para poder salvar a planilha:", "Salvar Planilha", "", 400, 300)
   
   If Not SenhaDigitada = Senha Then
       MsgBox "Senha incorreta. Esta planilha não pode ser salva.", vbInformation, "Mensagem"
       SaveAsUI = False
       Cancel = True
   End If
       
End Sub

...

2) No mesmo objeto ("EstaPasta_de_trabalho"), Você pode bloquear alterações em barras de ferramentas e travar menus específicos, colocando uma rotina no evento "Workbook_Open":

Private Sub Workbook_Open()

   Dim Barra As CommandBar, Comando As CommandBarControl
   
   On Local Error Resume Next
   
   'Procurar em cada barra de ferramentas...
   For Each Barra In Application.CommandBars
       
       '... as que contenhas os seguintes nomes:
       Select Case Barra.Name
       Case "Worksheet Menu Bar"
           'Proteger barra contra alteração do usuário
           Barra.Protection = msoBarNoCustomize
           'Travar menu 'Editar'
           For Each Comando In Barra.Controls
               If Comando.Caption = "&Editar" Then Comando.Enabled = False: Exit For
           Next
       Case "Standard"
           'Proteger barra contra alteração do usuário
           Barra.Protection = msoBarNoCustomize
           'Travar botões "Recortar" e outros...
           For Each Comando In Barra.Controls
               Select Case Comando.Caption
               Case "Recor&tar", "&Copiar", "C&olar"
                   Comando.Enabled = False
               End Select
           Next
       End Select
   
   Next

   Err.Clear

End Sub

Note que eu estou fazendo uma busca em todas as barras pelo nome padrão de cada uma. No caso da barra de menus, o nome padrão é "Worksheet Menu Bar". Depois faço uma busca pelo nome dos menus, no caso eu travei o menu "Editar" inteiro. E por aí vai... Claro que dá pra melhorar esse código, aí só depende de você...

...

3) No objeto chamado "Plan1" (note que poderá ter outro nome, conforme o nome dado à planilha), você pode evitar que seja usado o menu PopUp dentro das células, no evento "Worksheet_BeforeRightClick":

Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
   MsgBox "Planilha protegida!"
   Cancel = True
End Sub

...

Bom, pode ser que tenha um jeito mais fácil de desabilitar botões e menus específicos, mas eu desconheço.

Ainda tem o agravante de o usuário desabilitar as macros na hora de abrir a planilha (aquele aviso de proteção contra vírus de macro), aí você teria que criar uma exceção quanto à isso também, forçando o usuário à abrir a planilha com as macros.

Espero que isso ajude, boa sorte!

B)

Postado

Bom se ele utilizar macros, continuará com o problema de alguem poder ir no windows explorer e copiar para o disquete, como o funcionario sabe da senha ele vai poder abrir em qualquer outro lugar tambem!

olha amigo, na minha opinião o q voce quer é impossivel, se o funcionario pode ter acesso a planilha, então ele com acesso poderá copiar para outro arquivo sem senha . . . as macros são uma opção legal, mas o usuario não é obrigado a executar esta então, se ele desabilitar as macros terá acesso sem as restrições da macro descrita acima! não tem saída não!

podes até bloquear este aquivo + sempre terá uma saída, falo porque trabalho a 3 anos com o excel, conheço macros e tudo mais no excel. talvez fosse interessante voce fazer algo como um sistema de banco de dados, tendo os funcionarios acesso a apenas inclusoes e exclusoes e não a relatórios, já que se eles gerarem relatórios, tambem poderam levar as informações para casa!

é isso!.

Abraço e espero ter ajudado!

  • Membro VIP
Postado
Postado Originalmente por woney@28 jan 2004, 12:34

as macros são uma opção legal, mas o usuario não é obrigado a executar esta então, se ele desabilitar as macros terá acesso sem as restrições da macro descrita acima...

... talvez fosse interessante voce fazer algo como um sistema de banco de dados

Pois é, concordo plenamente e foi isso que eu disse: o usuário pode desabilitar as macros na hora de abrir a planilha (aquele aviso de proteção contra vírus de macro).

Mas isso não é impossível de conseguir driblar também. É difícil; mas não impossível. Só que não compensa o trabalho... fica muito mais fácil desenvolver um sistema.

O ideal pro nosso amigo seria mesmo um sistema com banco de dados, como você disse. Mas aí já depende da empresa onde ele trabalha mudar a mentalidade, pois ficar guardando dados importantes que não podem ser copiados dentro de uma planilha, imagina só...

Já trabalhei em empresas assim e deu o que fazer pra mudar a maneira de pensar das pessoas, é complicado:

-> Primeiro, porque o empresário (principalmente o pequeno e médio) gosta de uma "gambiarra" e não quer gastar dinheiro em um sistema decente (e depois reclama que nada funciona),

-> Segundo, porque os funcionários já estão habituados àquele "copia-cola-digita-deleta" em planilhas e editores de texto, e tem preguiça (ou medo) de que um sistema seja mais complicado e eles não saibam operar...

Valeu!

B)

  • 2 anos depois...
Postado

Pessoal,

Estive pensando sobre isso e me veio uma dúvida:

Será que há como se criar uma Macro que mostre o conteúdo da planilha??

Vou explicar:

O camarada abre o arquivo. Aparece a mensagem pedindo para habilitar ou desabilitar macros no documento. Caso ele habilite as macros, aparecerá o conteúdo da planilha (e, conseqüentemente, habilitará a proteção do SALVAR COMO). Caso ele escolha não habilitar as macros, a planilha vai abrir, mas em branco, sem os dados do documento.

Será que há como fazer????

Postado

Boa noite!

tenta esta macro

em:

EstaPasta_de_trabalho

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Validar = True

End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If Cancel = True Or Validar = False Then Exit Sub

Run "HideAll"

End Sub

Private Sub Workbook_Deactivate()

If Validar = False Then Exit Sub

Run "HideAll"

End Sub

Private Sub Workbook_Open()

Run "ShowAll"

End Sub

___________________

em um Modulo

Public Validar As Boolean

Dim Planilha As Worksheet

Sub HideAll()

Application.ScreenUpdating = False

For Each Planilha In ThisWorkbook.Worksheets

If Planilha.CodeName = "Sheet1" Then

Planilha.Visible = xlSheetVisible

Else

Planilha.Visible = xlSheetVeryHidden

End If

Next Planilha

Application.ScreenUpdating = True

End Sub

Sub ShowAll()

Validar = False

For Each Planilha In ThisWorkbook.Worksheets

If Planilha.CodeName <> "Sheet1" Then

Planilha.Visible = xlSheetVisible

Else

Sheet1.Visible = xlSheetVeryHidden

End If

Next Planilha

End Sub

  • 5 anos depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!