Manter cursor em Textbox

Text Box, Form's, rotinas, etc.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Manter cursor em Textbox

Mensagempor Oficina1 » Qua Set 11, 2019 11:33 pm

Olá,
a seguinte rotina deveria registrar - quando se digita o valor e depois teclando Enter - o valor digitado na celula E2.
Em seguida, a macro Explo deve usar o valor de E2, somar 500 e mostrar o resultado em E5.
Depois a textbox é limpa e o cursor deve ficar ativo no textbox1 esperando a digitação de outro valor e assim por diante.
Fiz algo parecido usando o evento AfterUpdate mas dessa vez não está funcionando.
Não sei anexar um arquivo para exemplo. Muito grato se alguem ajudar.

Código: Selecionar todos
Private Sub TextBox1_AfterUpdate()
   Range("E2") = TextBox1.Value
      Explo.Explo
     TextBox1.Value = Clear
     TextBox1.SetFocus
End Sub

Código: Selecionar todos
Sub Explo()
   Dim valor As Integer
   valor = Range("E2").Value
   Range("E5") = valor + 500
End Sub
Oficina1
Membro
Membro
 
Mensagens: 13
Registrado em: Dom Abr 01, 2018 4:50 am
Has thanked: 3 times
Have thanks: 0 time

{ SO_SELECT }

Re: Manter cursor em Textbox

Mensagempor wagner » Qui Set 12, 2019 4:31 pm

Oficina1

Boa tarde!

Coloque o código no evento Exit dessa forma:
Código: Selecionar todos
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   Range("E2") = TextBox1.Value
      Call Explo
     TextBox1.Value = ""
     Cancel = True
End Sub
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5549
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 104 times
Have thanks: 2371 times

Re: Manter cursor em Textbox

Mensagempor Oficina1 » Qui Set 12, 2019 5:36 pm

Obrigado, Wagner. Usei sua sugestão mas não funciona. Usando o Call (depois de fechar o userform) ele diz que era esperado variavel ou procedimento e não módulo. Então fiz assim:
Código: Selecionar todos
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   Range("E2") = TextBox1.Value
      Explo.Explo
     TextBox1.Value = ""
     Cancel = True
End Sub

Com essa mudança, depois que digito no textbox, mesmo dando Enter, não executa e o valor não aparece em E2. Só executa depois de fechar (clicando para fechar) o userform. Esse resultado é quase igual ao do codigo que postei.
Oficina1
Membro
Membro
 
Mensagens: 13
Registrado em: Dom Abr 01, 2018 4:50 am
Has thanked: 3 times
Have thanks: 0 time

Re: Manter cursor em Textbox

Mensagempor LuizCAF » Sex Jan 24, 2020 11:08 am

Não seria mais fácil vc criar um botão no formulário para executar essa rotina? ficaria algo assim após a criação (lembre de alterar o nome da planilha caso vá copiar e colar o código para testes, dá pra usar o comando worksheets("nome") tbm):

Código: Selecionar todos
Sub commandbutton1_click()
If Not IsNumeric(TextBox1) Then 'bloco verificador
    MsgBox "insira apenas numeros"
    TextBox1 = ""
    TextBox1.SetFocus
    Exit Sub
End If

Planilha2.Cells(2, 5) = CDbl(TextBox1) 'escreve o valor
Planilha2.Cells(5, 5) = CDbl(TextBox1) + 500 'escreve o valor em E5 somando com 500
TextBox1 = ""
TextBox1.SetFocus



End sub
Editado pela última vez por Adalberto7 em Sex Jan 24, 2020 1:26 pm, em um total de 1 vez.
Razão: Macros devem ser postadas utilizando-se a ferramenta Code
LuizCAF
Membro
Membro
 
Mensagens: 10
Registrado em: Qua Nov 27, 2019 10:40 am
Has thanked: 4 times
Have thanks: 0 time


Voltar para Formulários

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante