Tenho um formulário de cadastro onde a primeira textbox é para o id. Fiz um código para evitar duplicidade de id e caso ocorra, ele não registra, manda uma msgbox para o usuário e limpa o campo da textbox. Só que coloquei para, quando isso ocorrer, depois de limpar a textbox o focus permanecesse naquela texbox. Só que ela vai para a segunda texbox, ignorando o comando do setfocus. Por exemplo: Textbox1 = id; textbox2 = nome. Se id = textbox1 então avisa o usuário a duplicidade, limpa a textbox1 e deve manter o focus na textbox1. Só que, o focus vai para a textbox2, desobedecendo o comando setfocus. Alguém pode me ajudar, por favor?
2 participantes
SetFocus não funciona
Osecle- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3
Registrado : 04/10/2016
- Mensagem nº1
SetFocus não funciona
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
- Mensagem nº2
Re: SetFocus não funciona
Use o evento "antes de atualizar"
Nele faça as verificações necessárias e use o "cancel = true" para evitar que o controle perca o foco.
Se id = textbox1 então avisa o usuário a duplicidade, cancel = true, e o foco se mantem na textbox1
Nele faça as verificações necessárias e use o "cancel = true" para evitar que o controle perca o foco.
Se id = textbox1 então avisa o usuário a duplicidade, cancel = true, e o foco se mantem na textbox1
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
Osecle- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3
Registrado : 04/10/2016
- Mensagem nº3
SetFocus não funciona
Funcionou na segunda parte (quando encontra números duplicados), mas não funcionou na primeira parte, quando a caixa de texto1 = ""
Ai está o código
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'PRIMEIRA PARTE
'Codigo não aceita numero de matricula vazio
If Me.TextBox1 = "" Then
MsgBox "Matrícula é Obrigatório!", vbCritical, "Controle Dados"
Exit Sub
Cancel = True
End If
'SEGUNDA PARTE
'Codigo para evitar duplicação de numero de matrícula
Dim lastRow As Long
Dim matr As Range
'Ativar a planilha
Worksheets("DADOS ALUNOS").Select
' Verifica qual a ultima linha preenchida
lastRow = Cells(Rows.count, 1).End(xlUp).row
' Guarda a area a procurar
Set matr = Range("A4:A" & lastRow)
' Caso não encontre nenhum nome igual
If matr.Find(TextBox1.Text) Is Nothing Then
Exit Sub
Else
MsgBox "Matrícula existente!", vbCritical, "Controle de Dados"
'Esvaziar e colocar o foco na primeira caixa de texto
TextBox1 = Empty
Cancel = True
End If
End Sub
Ai está o código
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'PRIMEIRA PARTE
'Codigo não aceita numero de matricula vazio
If Me.TextBox1 = "" Then
MsgBox "Matrícula é Obrigatório!", vbCritical, "Controle Dados"
Exit Sub
Cancel = True
End If
'SEGUNDA PARTE
'Codigo para evitar duplicação de numero de matrícula
Dim lastRow As Long
Dim matr As Range
'Ativar a planilha
Worksheets("DADOS ALUNOS").Select
' Verifica qual a ultima linha preenchida
lastRow = Cells(Rows.count, 1).End(xlUp).row
' Guarda a area a procurar
Set matr = Range("A4:A" & lastRow)
' Caso não encontre nenhum nome igual
If matr.Find(TextBox1.Text) Is Nothing Then
Exit Sub
Else
MsgBox "Matrícula existente!", vbCritical, "Controle de Dados"
'Esvaziar e colocar o foco na primeira caixa de texto
TextBox1 = Empty
Cancel = True
End If
End Sub
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
- Mensagem nº4
Re: SetFocus não funciona
Isso é excel. Por ser excel e este fórum ser sobre access, moverei seu tópico para off topic.
Sugiro um fórum específico de excel para encontrar a solução caso a solução abaixo não resolva
Sugiro um fórum específico de excel para encontrar a solução caso a solução abaixo não resolva
- Código:
'PRIMEIRA PARTE
'Codigo não aceita numero de matricula vazio
If Me.TextBox1 = "" Then
MsgBox "Matrícula é Obrigatório!", vbCritical, "Controle Dados"
Cancel = True
Exit Sub
End If
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
Osecle- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3
Registrado : 04/10/2016
- Mensagem nº5
SetFocus não funciona
OK. NÃO FUNCIONA NA MESMA. MAS OBRIGADO PELA AJUDA.
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
- Mensagem nº6
Re: SetFocus não funciona
Olá, boa tarde.
Fique atento às regras do fórum e corrija sua mensagem
REGRAS DO FÓRUM
1. Tenha paciência com quem coloca aqui as suas duvidas.
2. Clareza nos títulos dos tópicos e duvidas, evite a linguagem MSN.
3. Não colocar diversas vezes a mesma dúvida.
4. Explicar detalhadamente o problema e informar a versão do seu Office + Sistema Operativo.
5. Retorne sempre se deu certo, esse retorno é muito importante.
6. Respeite toda a equipe Staff e demais membros deste fórum.
7. Use sempre o botão Busca, sempre que tiver uma dúvida e antes de abrir tópicos.
8. Não usar palavras como "Urgente". O fórum é livre e ninguém é obrigado a responder com urgência.
9. A publicidade é proíbida e só pode ser feita pelo Administrador ou depois de aprovada pelo Administrador.
10. Se o seu tópico não for respondido, tem o direito de fazer um Up ao final de 24horas!
11. A colocação de Códigos ou Exemplos, devem constar sempre os créditos de quem o elaborou.
12. Fale, não GRITE! Só letras Maiúsculas, na Internet é o mesmo que gritar!
13. É proibido tirar duvidas nas Salas de Repositório, devem abrir um novo tópico nas salas de duvidas, relacionando o Exemplo em causa.
14. É proibido adicionar links externos nos tópicos, que redirecionem para outros sites ("backlinks"), excepto DropBox ou do próprio fórum.
15. É permitido adicionar links externos, nos códigos VBA dentro das Base de Dados.
Fique atento às regras do fórum e corrija sua mensagem
REGRAS DO FÓRUM
1. Tenha paciência com quem coloca aqui as suas duvidas.
2. Clareza nos títulos dos tópicos e duvidas, evite a linguagem MSN.
3. Não colocar diversas vezes a mesma dúvida.
4. Explicar detalhadamente o problema e informar a versão do seu Office + Sistema Operativo.
5. Retorne sempre se deu certo, esse retorno é muito importante.
6. Respeite toda a equipe Staff e demais membros deste fórum.
7. Use sempre o botão Busca, sempre que tiver uma dúvida e antes de abrir tópicos.
8. Não usar palavras como "Urgente". O fórum é livre e ninguém é obrigado a responder com urgência.
9. A publicidade é proíbida e só pode ser feita pelo Administrador ou depois de aprovada pelo Administrador.
10. Se o seu tópico não for respondido, tem o direito de fazer um Up ao final de 24horas!
11. A colocação de Códigos ou Exemplos, devem constar sempre os créditos de quem o elaborou.
12. Fale, não GRITE! Só letras Maiúsculas, na Internet é o mesmo que gritar!
13. É proibido tirar duvidas nas Salas de Repositório, devem abrir um novo tópico nas salas de duvidas, relacionando o Exemplo em causa.
14. É proibido adicionar links externos nos tópicos, que redirecionem para outros sites ("backlinks"), excepto DropBox ou do próprio fórum.
15. É permitido adicionar links externos, nos códigos VBA dentro das Base de Dados.
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.