Como definir palavras-passe para proteger folhas de cálculo individuais de diferentes utilizadores no Excel?
No Excel, é possível definir palavras-passe diferentes para folhas de cálculo distintas, permitindo que um utilizador efetue alterações numa folha com uma palavra-passe, enquanto outro utilize uma palavra-passe diferente para modificar outra folha. Contudo, por vezes, o objetivo é garantir que cada utilizador consiga apenas visualizar e aceder à sua própria folha. Será isto possível no Excel?
Para proteger individualmente cada folha de cálculo e limitar o acesso às mesmas por utilizador, aplique o código VBA seguinte:
1. Abra um novo livro de trabalho e crie uma nova folha com o nome «Main», conforme ilustrado na captura de ecrã:

2. Em seguida, prima as teclas «Alt» + "F11" para abrir a janela do «Microsoft Visual Basic for Applications», clique duas vezes em «ThisWorkbook» no painel esquerdo «Project-VBAProject» para abrir um módulo de código em branco e copie e cole o seguinte código VBA na janela de código, conforme mostrado na captura de ecrã:
Código VBA: Definir palavras-passe para proteger folhas individuais por utilizador
Option Explicit
Dim gUserName As String
Dim gUserPass As String
Private Sub Workbook_Open()
'Updateby ExtendOffice
Dim xWShs As Sheets
Dim xWSh As Worksheet
Dim xUserName As String
Dim xPass As String
Dim xBolH As Boolean
GTINPUT:
xUserName = InputBox("Enter the user name")
If TypeName(xUserName) = "String" Then
If xUserName = "" Then
Exit Sub
End If
End If
xUserName = LCase(xUserName)
xPass = InputBox("User name:" & xUserName & Chr(13) & Chr(10) & "Enter the password:")
If TypeName(xPass) = "String" Then
If xPass = "" Then
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Else
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Set xWShs = Worksheets
xBolH = False
For Each xWSh In Worksheets
If xWSh.Name = xUserName Then
xBolH = True
Exit For
End If
Next
If xBolH Then
Set xWSh = xWShs(xUserName)
On Error GoTo GTINPUT2
xWSh.Unprotect (xPass)
xWSh.Visible = True
xWSh.Activate
Else
Set xWSh = xWShs.Add
xWSh.Name = xUserName
xWSh.Activate
End If
gUserName = xUserName
gUserPass = xPass
Exit Sub
GTINPUT2:
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xWSh As Worksheet
On Error Resume Next
Set xWSh = Worksheets(gUserName)
xWSh.Protect Password:=gUserPass, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
For Each xWSh In Worksheets
If xWSh.Name <> "Main" Then
xWSh.Visible = xlSheetVeryHidden
End If
Next xWSh
ActiveWorkbook.Save
End Sub

3. Em seguida, posicione o cursor no final do script «Private Sub Workbook_Open()» e prima a tecla "F5" para executar o código. Na caixa de diálogo que aparece, introduza o nome de utilizador para o qual deseja criar uma folha, conforme mostrado na captura de ecrã:

4. Depois, clique no botão «OK» e, na caixa de diálogo seguinte, introduza uma palavra-passe para proteger esta folha, conforme ilustrado na captura de ecrã:

5. Continue a clicar no botão «OK» e será imediatamente criada uma nova folha com o nome do utilizador, permitindo-lhe introduzir os dados necessários para esse utilizador. Consulte a captura de ecrã:

6. Repita os passos anteriores 3 a 5 para criar, um a um, os restantes folhas que pretende utilizar.
7. Após criar as folhas, guarde o Livro de Trabalho Atual clicando em «Ficheiro» > «Guardar Como». Na caixa de diálogo «Guardar Como», especifique um nome de ficheiro e selecione o formato «Livro de Macros do Excel (*.xlsm)» na lista pendente «Especificar Formato de Salvamento», conforme ilustrado na captura de ecrã:

8. Em seguida, clique no botão Guardar para salvar este ficheiro.
9. Depois, feche o livro e reabra-o. Em seguida, clique em «Ativar Conteúdo» na parte superior da Barra de Fórmulas para ativar o código.

10. Agora, surgirá uma caixa de diálogo a solicitar o nome de utilizador e a respetiva palavra-passe para aceder à folha específica atribuída a esse utilizador.
11. Por fim, ao enviar este livro para outros utilizadores, deverá fornecer-lhes o nome de utilizador e a palavra-passe correspondentes. Estes só poderão abrir e editar as suas próprias folhas, sem autorização para visualizar outras folhas de cálculo.
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos