Notifications
Clear all

Macro para criar tela de login

6 Posts
3 Usuários
0 Reactions
1,394 Visualizações
(@nunes)
Posts: 10
Active Member
Topic starter
 

Olá galera,

Estou tentando criar uma tela de login com o seguinte codigo:

Private Sub bt_cancelar_Click()

Application.Quit

End Sub

Private Sub bt_entrar_Click()

'If txt_usuario.Text = "" And txt_senha.Text = "" Then
'MsgBox "Informe usuario e senha!", vbCritical, "Erro"

'ElseIf txt_usuario.Text <> "" And txt_senha.Text = "" Then
'MsgBox "Informe a senha do usuario!", vbCritical, "Erro"

'ElseIf txt_usuario.Text = "" And txt_senha.Text <> "" Then
'MsgBox "Informe o usuario!", vbCritical, "Erro"

Range("A2").Select

Dim senha As String
contador = 0

Do While txt_usuario.Text <> ActiveCell.Value And contador < 100

ActiveCell.Offset(1, 0).Select
contador = contador + 1
Loop

senha = ActiveCell.Offset(0, 1).Value

If txt_senha.Text = senha Then
Sheets("Plan2").Select
Unload Me

'Application.Visible = True'

Else
MsgBox "Usuario ou senha incorretas!", vbCritical, "Error"

End If

End Sub

Private Sub bt_limpar_Click()

txt_usuario.Text = ""
txt_senha.Text = ""

End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()

'Application.Visible = False

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
End If
End Sub

Porem quando clico em entrar com o usuário e senha em branco esta abrindo a aplicação, o que retorne uma mensagem, não abra a aplicação e limpe a tela a tela de login? ...Tentei fazer, veja parte comentada.

 
Postado : 10/03/2014 7:03 pm
Weslley
(@weslley)
Posts: 90
Trusted Member
 

Tente isso...

Private Sub bt_cancelar_Click()

Application.Quit

End Sub

Private Sub bt_entrar_Click()

If txt_usuario.Text = "" And txt_senha.Text = "" Then
MsgBox "Informe usuario e senha!", vbCritical, "Erro"

ElseIf txt_usuario.Text <> "" And txt_senha.Text = "" Then
MsgBox "Informe a senha do usuario!", vbCritical, "Erro"

ElseIf txt_usuario.Text = "" And txt_senha.Text <> "" Then
MsgBox "Informe o usuario!", vbCritical, "Erro"

Else


Range("A2").Select

Dim senha As String
contador = 0

Do While txt_usuario.Text <> ActiveCell.Value And contador < 100

ActiveCell.Offset(1, 0).Select
contador = contador + 1
Loop

senha = ActiveCell.Offset(0, 1).Value

If txt_senha.Text = senha Then
Sheets("Plan2").Select
Unload Me

Else

MsgBox "Usuario ou senha incorretas!", vbCritical, "Error"

End If
'Application.Visible = True'
End If

End Sub

Private Sub bt_limpar_Click()

txt_usuario.Text = ""
txt_senha.Text = ""

End Sub

Private Sub TextBox2_Change()

End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()

'Application.Visible = False

End Sub

Se a resposta foi útil, clique na mãozinha do lado da ferramenta Citar

Atenciosamente,

Weslley Henrique S.S.
MOS (Microsoft Office Specialist)

"O impossível é uma questão de tempo!"
(Alberto Saltiel)

 
Postado : 10/03/2014 7:30 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Caso queria um modelo.
http://www.sendspace.com/file/0kxd66

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/03/2014 5:05 am
(@nunes)
Posts: 10
Active Member
Topic starter
 

Quase resolveu, quase...

Tente isso...

Private Sub bt_cancelar_Click()

Application.Quit

End Sub

Private Sub bt_entrar_Click()

If txt_usuario.Text = "" And txt_senha.Text = "" Then
MsgBox "Informe usuario e senha!", vbCritical, "Erro"

ElseIf txt_usuario.Text <> "" And txt_senha.Text = "" Then
MsgBox "Informe a senha do usuario!", vbCritical, "Erro"

ElseIf txt_usuario.Text = "" And txt_senha.Text <> "" Then
MsgBox "Informe o usuario!", vbCritical, "Erro"

Else


Range("A2").Select

Dim senha As String
contador = 0

Do While txt_usuario.Text <> ActiveCell.Value And contador < 100

ActiveCell.Offset(1, 0).Select
contador = contador + 1
Loop

senha = ActiveCell.Offset(0, 1).Value

If txt_senha.Text = senha Then
Sheets("Plan2").Select
Unload Me

Else

MsgBox "Usuario ou senha incorretas!", vbCritical, "Error"

End If
'Application.Visible = True'
End If

End Sub

Private Sub bt_limpar_Click()

txt_usuario.Text = ""
txt_senha.Text = ""

End Sub

Private Sub TextBox2_Change()

End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()

'Application.Visible = False

End Sub

 
Postado : 16/03/2014 4:42 pm
(@nunes)
Posts: 10
Active Member
Topic starter
 

Não resolveu, esta dando o erro: Erro de compilação - Bloco If sem End If.

Private Sub bt_cancelar_Click()

Application.Quit

End Sub

Private Sub bt_entrar_Click()

If txt_usuario.Text = "" And txt_senha.Text = "" Then
MsgBox "Informe usuario e senha!", vbCritical, "Erro"

ElseIf txt_usuario.Text <> "" And txt_senha.Text = "" Then
MsgBox "Informe a senha do usuario!", vbCritical, "Erro"

ElseIf txt_usuario.Text = "" And txt_senha.Text <> "" Then
MsgBox "Informe o usuario!", vbCritical, "Erro"

Else

Range("A2").Select

Dim senha As String
contador = 0

Do While txt_usuario.Text <> ActiveCell.Value And contador < 100

ActiveCell.Offset(1, 0).Select
contador = contador + 1
Loop

senha = ActiveCell.Offset(0, 1).Value

If txt_senha.Text = senha Then
Sheets("Plan2").Select
Unload Me

Application.Visible = True

Else

MsgBox "usuario ou senha incorretos!", vbCritical, "Erro"

End If

End Sub

Private Sub bt_limpar_Click()

txt_usuario.Text = ""
txt_senha.Text = ""

End Sub

Private Sub UserForm_Initialize()

Application.Visible = False

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If CloseMode = vbFormControlMenu Then
Cancel = True

End If

End Sub

Private Sub bt_cancelar_Click()

Application.Quit

End Sub

Private Sub bt_entrar_Click()

If txt_usuario.Text = "" And txt_senha.Text = "" Then
MsgBox "Informe usuario e senha!", vbCritical, "Erro"

ElseIf txt_usuario.Text <> "" And txt_senha.Text = "" Then
MsgBox "Informe a senha do usuario!", vbCritical, "Erro"

ElseIf txt_usuario.Text = "" And txt_senha.Text <> "" Then
MsgBox "Informe o usuario!", vbCritical, "Erro"

Else


Range("A2").Select

Dim senha As String
contador = 0

Do While txt_usuario.Text <> ActiveCell.Value And contador < 100

ActiveCell.Offset(1, 0).Select
contador = contador + 1
Loop

senha = ActiveCell.Offset(0, 1).Value

If txt_senha.Text = senha Then
Sheets("Plan2").Select
Unload Me

Else

MsgBox "Usuario ou senha incorretas!", vbCritical, "Error"

End If
'Application.Visible = True'
End If

End Sub

Private Sub bt_limpar_Click()

txt_usuario.Text = ""
txt_senha.Text = ""

End Sub

Private Sub TextBox2_Change()

End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()

'Application.Visible = False

End Sub

 
Postado : 20/03/2014 6:23 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Em rotinas com condições geralmente temos o Inicio e o Fim, ou seja é como se fosse uma operação com parenteses, sempre que abrimos um parenteses temos de fechar, exemplificando:

Quando Utilizamos :
IF ....THEN... temos de ter o END IF

IF ... THEN ...ELSEIF....ELSE...temos de finalizar com END IF

Veja que na rotina que postou abrimos o Primeiro IF:
If txt_usuario.Text = "" And txt_senha.Text = "" Then

Depois no Meio temos mais um IF
If txt_senha.Text = senha Then
as instruções....
....
Else
e este IF está Fechado
End If

logo, o IF que está faltando fechar é o primeiro, então, no caso desta rotina ao final depois do END IF que está finalizando a segunda condição IF temos de fazer o fechamento do primeiro IF.

Coloque o END IF logo apos este ultimo End IF.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/03/2014 6:49 pm