Formulário de login do Excel VBA
É possível criar um formulário de usuário baseado em login no Excel VBA com toda a lista suspensa de id de login, e a senha será compartilhada separadamente. Em algum momento, você deve ter tido a ideia de criar um formulário de login de usuário baseado em senha, que requer que o usuário escolha seu ID de usuário e digite a senha para acessar a planilha necessária.
Neste artigo, mostraremos como criar um formulário de usuário de login usando o Excel VBA.

Como criar um formulário de login de usuário?
Por exemplo, suponha que você tenha números de vendas regionais em planilhas diferentes. Temos 4 nomes de zona diferentes e cada planilha de zona tem apenas seus dados relacionados. Agora, a ideia é criar um formulário de login onde o chefe de vendas da zona “Leste” deve ver apenas os dados da zona “Leste”, não quaisquer outras zonas, mas como um administrador, você deve ver todas as planilhas de zonas.
Primeiro, precisamos inserir um nome de planilha chamado “Admin.” Nesta folha de administração, precisamos criar uma credencial de “Id de login” e “Senha”.

Nomeei a zona e a senha da mesma forma, você pode alterar isso mais tarde. Para nomes de zona, criei o intervalo de nomes como “ZoneList”. Este “Gerenciador de nomes” será usado posteriormente neste formulário de usuário de login.

Quando o usuário abre o arquivo, ele deve ver uma folha fictícia no fundo, então crie uma nova folha e nomeie-a como Folha “Fictícia”. ”

Usando essas planilhas, criaremos um formulário de login de usuário.
Etapa 1: inserir o formulário do usuário
Pressione alt = "" + tecla F11 para abrir a janela do Editor VBA.

- Na guia “Inserir”, insira “Formulário do usuário”.

- Isso criará um novo formulário de usuário como o abaixo.

- Pressione a tecla F4 para ver a janela Propriedades. A partir desta janela de propriedades, altere o nome do formulário do usuário para “LoginUF”

- Da mesma forma, usando esta janela de propriedades, podemos brincar com as propriedades do formulário do usuário. Eu fiz algumas alterações nas propriedades. Você pode consultar a janela de propriedades abaixo para aplicar as alterações às propriedades do formulário do usuário.

- Agora meu formulário de usuário se parece com isso.

Etapa 2: Design do formulário do usuário
- Na caixa de ferramentas do formulário do usuário, insira duas caixas de rótulo e insira o texto, conforme mostrado abaixo.

- Na caixa de ferramentas, insira “Caixa de combinação”.

- Para esta caixa de combinação do Excel, precisamos obter os nomes das zonas da planilha “Folha de administração”, portanto, da janela de propriedades da “Caixa de combinação”, primeiro dê um nome a esta caixa de combinação como “Zone_List_ComboBox” na propriedade “Nome” .

- Na propriedade “Origem da linha” da caixa de combinação, insira o nome dado à lista de zonas na “Planilha de administração”.

- Agora, nossa caixa de combinação deve mostrar os nomes das zonas em sua lista suspensa no Excel.

- Para “Enter You Password”, precisamos inserir uma “caixa de texto” da caixa de ferramentas.

- Para esta “Caixa de texto”, precisamos alterar a propriedade “Nome” e alterá-la como “Senha_TB”.

Agora, na codificação do formulário de login do VBA, “Combo Box” será denominado “Zone_List_ComboBox” e “Text Box” será denominado “Password_TB”.
- Insira dois “Botões de comando” e digite o texto como “Login” e “Logout”.

For the “Log In” command button, change the name property to “Login_CommandButton,” and for the “Log Out” command button, change the name property to “LogOut_CommandButton.”
Step 3: Code
We are done with the VBA login user form design part. It’s time to write the code to create a login based user form in excel VBA.
- Double click on the “Log In” Command Button. This will open a blank sub procedure like the below one.

Inside this procedure, we need to write the code about what should happen if the “Log In” button is pressed.
I have already written the code. You can copy and paste the code from below inside the above procedure.
Code:
Private Sub Login_CommandButton_Click() If Zone_List_ComboBox.Value = "" Then MsgBox "Zone Cannot be Blank!!!", vbInformation, "Zone Name" Exit Sub End If If Password_TB.Value = "" Then MsgBox "Password Cannot be Blank!!!", vbInformation, "Password" Exit Sub End If If Zone_List_ComboBox.Value = "Admin" And Password_TB.Value = "Admin" Then Unload Me Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws Sheets("Admin").Select Else Dim ZoneName As String Dim Password As Variant ZoneName = Zone_List_ComboBox.Value Password = Application.WorksheetFunction.VLookup(ZoneName, Sheets("Admin").Range("A:B"), 2, 0) If Password Password_TB.Value Then MsgBox "Password is not matching", vbInformation, "Wrong Password" Exit Sub End If If Password = Password_TB.Value Then Unload Me Sheets(ZoneName).Visible = True Sheets(ZoneName).Select ActiveSheet.Range("A1").Select End If End If End Sub
Similarly, double click on the “Log Out” command button and enter the below code.
Code:
Private Sub LogOut_CommandButton_Click() ThisWorkbook.Save ThisWorkbook.Close End Sub

Now double click on “User Form” (not on any of the buttons inserted) and add the below code.
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ' Prevents use of the Close button If CloseMode = vbFormControlMenu Then MsgBox "Clicking the Close button does not work." Cancel = True End If End Sub

- Now double click on the “ThisWorkbook” icon. This will open up below the blank code field.

Now add the below code in this blank field.
Code:
Private Sub Workbook_Open() Dim Ws As Worksheet Application.DisplayAlerts = False Application.ScreenUpdating = False For Each Ws In ActiveWorkbook.Worksheets If Ws.Name "Dummy" Then Ws.Visible = xlSheetVeryHidden End If Next Ws LogInUF.Show End Sub

- We are done with the coding part of the form. Save the workbook as a “Macro-Enabled” workbook and reopen the workbook. Upon reopening the workbook, we should see the below window.

- From this user form, we need to choose the respective zone name and enter the associated password. For example, I will choose the “East” zone from the drop-down and enter the password.

- If I click on “Log In,” we can see only the “East” zone worksheet.

Similarly, if we log in with “Admin,” we can access all the worksheets.

Like this, we can create a login based password protected worksheet access.
Things to Remember
- Você precisa usar os mesmos nomes que demos ao formulário do usuário, caixa de texto e botão de comando e caixa de combinação na codificação.
- Você pode alterar o nome da zona e a senha de acordo com sua preferência.