Notifications
Clear all

Login Botao Cadastrar

25 Posts
1 Usuários
0 Reactions
2,385 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Oi pessoal,

Venho mais uma vez solicitar ajuda. Estou construindo por conta uma tela de login a partir do que venho aprendendo. É um projeto simples. São 4 botões Ocultar planilha, exibir planilha, cadastrar e sair. Os dois primeiros botões estão funcionais felizmente. Entretanto o botão cadastrar não funcionou. Não consigo identificar o erro. Gostaria que quem tem mais experiência que eu pudesse me auxiliar, vou enviar as fotos na sequencia pra poder ajudar no que estou falando.

A primeira imagem será da própria tela de usuário e ID

A segunda da mensagem com o erro correspondente

E a terceira do erro após depuração.

Agradeço desde já a boa vontade de quem puder me auxiliar.

 
Postado : 12/11/2012 5:44 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro se puder postar a planilha te agradeço, novamente deu erro, na linha que tu sugeriu. Não acredito, desculpa minha falta de conhecimento.

 
Postado : 12/11/2012 6:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ai vou ver e comparar com a versao anterior e ver se localizo os erros por conta. Para aprender.

 
Postado : 12/11/2012 6:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


No meu anexo, está rodando OK...

 
Postado : 12/11/2012 6:50 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


No meu anexo, está rodando OK...

Edson, baixei o seu modelo e ele roda se a aba Cadastro não estiver Oculta, e na rotina : Private Sub BtnCadastrar_Click() na primeira linha temos o espaço no nome da aba e gera erro : Sheets("Cadastro ").Select.

Andre, para não ter de anexar o mesmo modelo, copie e troque suas rotinas pelas a abixo :

Private Sub BtnCadastrar_Click()
    
    Sheets("Cadastro").Activate ' seleciona a planilha de cadastro
    Dim Linha As Integer
    Linha = 5 'linha =5 por que os IDs serão cadastrados a partir da linha 3
    
    Dim ID As Integer
    ID = 1
    
    Do While Range("C" & Linha) <> "" ' <> significa diferente de algo, nesse caso diferente de vazio enquanto B+Linha diferente de fácil continua no laço
        Linha = Linha + 1 ' esse comando todo serve para que não entre num laço infinito
        ID = ID + 1
    Loop ' o loop sempre vem depois do while e sempre há um antes do while
    
    Range("C" & Linha).Select 'seleciona a célula e atribui a ela
    ActiveCell.Value = ID ' ActiveCell.value atribui valor as celulas antes selecionados
    
    Range("D" & Linha).Value = TxtUser 'Essa é outra forma de atribuir valor a uma celula
End Sub


Private Sub UserForm_Initialize()
    Sheets("Cadastro").Activate  ' seleciona a planilha de cadastro
    Dim Linha As Integer
    Linha = 5
    
    Do While Range("C" & Linha) <> "" ' sempre antes do While usa-se "do" , ficando "do while".Quando for diferente de ""(vazio), o ID ele irá adiciona os usuários da célula ao lado na combox, toda vez que o formulário iniciar
       Linha = Linha + 1
       ID = ID + 1
       CBLista.AddItem (Range("D" & Linha))
    Loop
End Sub

[]s

 
Postado : 12/11/2012 6:58 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Valeu Mauro, vou tentar.

 
Postado : 12/11/2012 7:01 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Tem razão, Mauro, faltou eliminar o espaço ao utilizar o Cadastro efetivamente.

Valeu!

 
Postado : 12/11/2012 7:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Em forma de agradecimento e paciência a voces gurizada, com o mesmo arquivo baleado, posto ele corrigido

Agradeço a paciencia, compreensao e empenho pra me ajudar a resolver o problema. Desculpa o tempão. A mim valeu o aprendizado, vou comparar com o que tava acontecendo e aprender com o erro.

Valeu Mauro e Edson.

Abraço, André.

 
Postado : 12/11/2012 7:07 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia andrek78!

Abri o seu arquivo e fiz as mesmas alterações que o Edson citou aí no comentário acima.
A opção de Cadastrar Usuario funciona somente quanto a planilha "Cadastro" NÃO estiver oculta.
Quando vc oculta ela, pede para depurar.

Att,

 
Postado : 13/11/2012 5:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia andrek78!

Abri o seu arquivo e fiz as mesmas alterações que o Edson citou aí no comentário acima.
A opção de Cadastrar Usuario funciona somente quanto a planilha "Cadastro" NÃO estiver oculta.
Quando vc oculta ela, pede para depurar.

Att,

Marciel, se seu comentário for uma duvida, é só olhar nas postagens anteriores onde eu disse para trocar o "Select" por "Activate", assim podemos trabalhar com a aba Oculta.

[]s

 
Postado : 13/11/2012 5:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Marciel verdade. Agora se verificar com mais atenção as postagens anteriores o Mauro o Mauro deixou a solução disponível, acredito que a correção abaixo te ajudará na planilha que tem em mãos.

Private Sub BtnCadastrar_Click()

Sheets("Cadastro").Activate ' seleciona a planilha de cadastro
Dim Linha As Integer
Linha = 5 'linha =5 por que os IDs serão cadastrados a partir da linha 3

Dim ID As Integer
ID = 1

Do While Range("C" & Linha) <> "" ' <> significa diferente de algo, nesse caso diferente de vazio enquanto B+Linha diferente de fácil continua no laço
Linha = Linha + 1 ' esse comando todo serve para que não entre num laço infinito
ID = ID + 1
Loop ' o loop sempre vem depois do while e sempre há um antes do while

Range("C" & Linha).Select 'seleciona a célula e atribui a ela
ActiveCell.Value = ID ' ActiveCell.value atribui valor as celulas antes selecionados

Range("D" & Linha).Value = TxtUser 'Essa é outra forma de atribuir valor a uma celula
End Sub

Private Sub UserForm_Initialize()
Sheets("Cadastro").Activate ' seleciona a planilha de cadastro
Dim Linha As Integer
Linha = 5

Do While Range("C" & Linha) <> "" ' sempre antes do While usa-se "do" , ficando "do while".Quando for diferente de ""(vazio), o ID ele irá adiciona os usuários da célula ao lado na combox, toda vez que o formulário iniciar
Linha = Linha + 1
ID = ID + 1
CBLista.AddItem (Range("D" & Linha))
Loop
End Sub

Abração Marciel, valeu mauro pela ajuda ontem.

 
Postado : 13/11/2012 8:03 pm
Página 2 / 2