Como definir senhas para proteger planilhas individuais para diferentes usuários no Excel?
No Excel, você pode definir senhas diferentes para planilhas diferentes; isso significa que um usuário pode fazer alterações em uma planilha usando uma senha, enquanto outro pode usar uma senha diferente para alterar outra planilha. No entanto, às vezes, você pode querer que cada usuário tenha acesso apenas à sua própria planilha. Isso é possível de ser resolvido no Excel?
Para proteger cada planilha individualmente e limitar o acesso das planilhas por usuários, aplique o seguinte código VBA:
1. Abra uma nova pasta de trabalho e crie uma nova planilha chamada “Planilha Principal”, veja a captura de tela:
2. Em seguida, pressione as teclas "Alt" + "F11" para abrir a janela "Microsoft Visual Basic for Applications", clique duas vezes em "EstaPastaDeTrabalho" no painel esquerdo "Projeto-VBAProject" para abrir um módulo de código em branco e, em seguida, copie e cole o seguinte código VBA na janela de código, veja a captura de tela:
Código VBA: Definir senhas para proteger planilhas individuais por usuários
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. Depois disso, coloque o cursor no final do script "Private Sub Workbook_Open()" e pressione a tecla "F5" para executar este código. Agora, na caixa de diálogo que aparece, insira o nome do usuário para o qual deseja criar uma planilha, veja a captura de tela:
4. Em seguida, clique no botão "OK". Na próxima caixa de diálogo, insira uma senha para proteger essa planilha, veja a captura de tela:
5. Continue clicando no botão "OK", e uma nova planilha nomeada com o nome do usuário será criada imediatamente, e você poderá criar os dados para esse usuário conforme necessário. Veja a captura de tela:
6. Repita as etapas 3 a 5 acima para criar outras planilhas uma a uma, conforme desejar.
7. Após criar as planilhas, salve a pasta de trabalho atual clicando em "Arquivo" > "Salvar Como". Na caixa de diálogo "Salvar Como", especifique um nome de arquivo e escolha o formato "Pasta de Trabalho Habilitada para Macro do Excel (*.xlsm)" na lista suspensa "Especificar Formato de Salvamento", veja a captura de tela:
8. Em seguida, clique no botão Salvar para salvar este arquivo.
9. Depois disso, feche a pasta de trabalho e a reabra, depois clique em "Ativar Conteúdo" na parte superior da barra de fórmulas para ativar o código.
10. Agora, uma caixa de diálogo será exibida para lembrá-lo de inserir o nome de usuário e a senha para abrir a planilha específica pelo usuário correspondente.
11. Por fim, ao enviar esta pasta de trabalho para outros usuários, você deve enviar o nome de usuário e a senha para o respectivo usuário. Eles só poderão abrir e editar suas próprias planilhas e não terão autorização para visualizar outras planilhas.
Melhores Ferramentas de Produtividade para Office
Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!