Notifications
Clear all

LOGIN, dúvidas e sugestões

5 Posts
3 Usuários
0 Reactions
1,054 Visualizações
(@luxcel)
Posts: 11
Active Member
Topic starter
 

Bom dia a todos,

Fiz aqui um VBA simples para o login da minha planilha, gostaria que me ajudassem a melhorar esse VBA e até mesmo tirar algumas dúvidas

- Tem como centralizar o Texto dentro das TextBox?
- Após efetuar o login na planilha ele da aquele "ERRO EM TEMPO DE EXECUÇÃO 424", tem como tirar isso?
- Gostaria que me ajudassem com essa manipulação dos Login, o que posso fazer para melhorar etc...

Usuário para acessar a planilha:

Usuário 123
Senha 123

Obrigado desde já

 
Postado : 17/11/2013 8:40 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Userforms não é comigo, mas...

Quanto ao erro de tempo de execução:

Se vc depurar, vai ver que o erro acontece aqui:

Unload UserForm1
'UserForm.Show

Vc manda fechar o Userform, e depois manda reexibir de novo. Se fizer isso, o usuário nunca vai sair da tela de login. (Aliás, o erro se dá porque a referência é inválida, vc tem um UserForm1, quando manda exibir o UserForm (sem o 1), o Excel não o encontra, gerando o erro. Portanto, retire a linha:

'UserForm.Show

 
Postado : 17/11/2013 9:48 am
(@luxcel)
Posts: 11
Active Member
Topic starter
 

Obrigado gtsalikis,

Só falta agora arrumar os códigos, para quando o usuário clicar no "X" ele deve sair da planilha
Colocar o texto centralizado nas textbox
Na tela de login, não mostrar o fundo da planilha
E algumas outras coisinhas para aperfeiçoamentos
Se tiverem algumas coisas para acrescentar também eu ficaria agradecido

Conto com apoio dos mestres em VBA :D

 
Postado : 17/11/2013 9:56 am
(@luxcel)
Posts: 11
Active Member
Topic starter
 

Tem como deixar a TextBox transparente para que nao afete a imagem do LOGIN que eu fiz?

 
Postado : 17/11/2013 10:35 am
(@sergio-vilar)
Posts: 11
Active Member
 

Para manter o texto dentro do textbox centralizado você pode clicar no TextBox e nas propriedades alterar TextAlign para 2 -fmTextAlignCenter

Como sugestão, você pode incluir um botão cancelar, caso o usuário não tenha usuário e senha. Ao clicar no cancelar você coloca o código para fechar o arquivo, assim evita que o usuário acesse sem usuário e senha.
Desta forma você pode aproveitar e desabilitar os botões do userform forçando o usuário a fechar sempre pelo cancelar.

O código abaixo não fui eu que fiz, achei no google a muito tempo. Ele remove a barra de titulo. Vai dar um visual legal na sua tela de login.
É só colar dentro do userform.


Option Explicit

Private Declare Function FindWindow Lib "User32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLong Lib "User32" _
Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "User32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function DrawMenuBar Lib "User32" ( _
ByVal hwnd As Long) As Long

Sub RemoveCaption(objForm As Object)
     
    Dim lStyle          As Long
    Dim hMenu           As Long
    Dim mhWndForm       As Long
     
    If Val(Application.Version) < 9 Then
        mhWndForm = FindWindow("ThunderXFrame", objForm.Caption) 'XL97
    Else
        mhWndForm = FindWindow("ThunderDFrame", objForm.Caption) 'XL2000+
    End If
    lStyle = GetWindowLong(mhWndForm, -16)
    lStyle = lStyle And Not &HC00000
    SetWindowLong mhWndForm, -16, lStyle
    DrawMenuBar mhWndForm
     
End Sub
Sub ShowForm()
     
    UserForm1.Show False
     
End Sub

Private Sub UserForm_Initialize()
    Application.ScreenUpdating = False
    Sheets("adm").Visible = True
    Call RemoveCaption(Me)
    Dim lf, j
    

End Sub




 
Postado : 19/11/2013 2:40 pm