Estive vendo que a maioria sempre necessita, ao desenvolver uma aplicação de um sistema de Login onde se
possa cadastrar novos usuários e até mesmo senhas.
Então resolvi deixar pra galera, um pequeno sistema de Login em VBA Excel.
Vamos colocar as Mãos No Código.
- Necessita que você acesse o Excel, seja 2007 ou 2003, …
- Renomei a Plan1 para Login…
- Na Coluna A entre com o Nome de Usuário = ADMIN (este nome Maiusculo, o TextBox já está formatado para faze-lo pra vocês, basta que seja cadastarado em maiusculo dentro da Coluna A da Plan1 que você já renomeou para Login)
- na Coluna B entre com a Senha = admin. (Desta forma descrita aqui) caso contrario você não irá acessar a sua planilha de dados.
- Pressione ALT + F11;
- Insira um Form Novo;
Para este aplicativo você necessitará de 02 textboxs, 02 labels, 02 CommandButton. Nomes para cada item citados acima (acho que ando muito bom pra vocês)
Para os labels
UserName
Password
Nome para os textboxs
TBx_Usuario
TBx_Senha
Para O Botão de Comando OK
CBt_Ok
e para o segundo Botão de Comando (CommandButton2). insira este código dentro dele;
ThisWorkbook.Close SaveChanges:=True |
Onde este comando, salvará e finalizará o seu aplicativo caso alquem tente acessar a mesma sem senha ao clicar em fechar tentando assim, invadir o seu aplicativo.
Galera, agora é o seguinte. Copie o codigo abaixo depois de remonear cada textbox e cada Botão de acordo com sua necessidade, basta clicar duas vezes no form, delete a instrução que aperecer e insira este pequeno código aqui:
Private Sub CommandButton2_Click() ThisWorkbook.Close SaveChanges:=True End Sub Private Sub UserForm_Activate() 'Neste caso você tem a opção de mostrar ou ocultar o excel, basta mudar a instrução TRUE abaixo para False Application.Visible = True TBx_Senha.Enabled = TBx_Usuario.Text <> "" CBt_Ok.Enabled = (TBx_Usuario.Text <> "" And TBx_Senha.Text <> "") End Sub Private Sub CBt_Ok_Click() Dim Linha As Integer On Error GoTo NaoEncontrado Linha = Sheets("Login").Range("A:A").Find(TBx_Usuario).Row If TBx_Senha = Sheets("Login").Cells(Linha, 2) Then MsgBox ("Seja Bem Vindo (a) ") & TBx_Usuario, vbInformation, ("Login - Live Free") Unload Me 'Tela de acesso ao sistema aqui 'Seu Aplicativo será carregado, substituindo esta linha para a que você necessite que seja carregado em primeiro plano (form1,Menu,Dados...Etc) Else MsgBox ("A senha não confere"), vbInformation, ("Login - Live Free") TBx_Senha = "" TBx_Senha.SetFocus End If Exit Sub NaoEncontrado: MsgBox ("Usuário não cadastrado."), vbInformation, ("Login - Live Free") TBx_Usuario = "" TBx_Usuario.SetFocus End Sub Private Sub TBx_Usuario_Change() TBx_Senha.Enabled = TBx_Usuario.Text <> "" CBt_Ok.Enabled = (TBx_Usuario.Text <> "" And TBx_Senha.Text <> "") 'Aqui o código que modifica a letra digitada para a forma maiuscula TBx_Usuario.Value = UCase(TBx_Usuario.Value) End Sub Private Sub TBx_Senha_Change() CBt_Ok.Enabled = (TBx_Usuario.Text <> "" And TBx_Senha.Text <> "") End Sub Private Sub UserForm_Initialize() ' Metodo Invisivel do Excel Application.Visible = False TBx_Usuario.SetFocus End Sub 'Aqui vai algo bem legal de bonus pra todos, iremos desabilitar tambem o Botão de Fechar no alto do Form, travando o mesmo para não ser finalizado. Private Sub UserForm_QueryClose _ (Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then 'Tente finalizar e veja esta mensagem na tela MsgBox "Esta Ação Não É Permitida.Desculpe!", vbInformation, "AVISO - Live Free" Cancel = True End If End Sub Já quase me esquecendo Para que o sistema de login inicie em primeiro lugar, basta ir na opção do lado esquerdo, procure esta instrução: -Esta_Pasta_De_Trabalho De 02 cliques nela e dentro, cole este codigo: Private Sub Workbook_Open() Login.Show End Sub |
Fim do código.
Espero ter ajudado e que todos se sintam a vontade para modificarem o mesmo, conforme suas necessidades.
Para inserir outros usuáros e suas senhas, lhes mostrarem isso em outra oportunidade.
Valeu galera. Até nosso proximo post.