Página 1 de 1

Lançar dados com AfterUpdate

Enviado: 07 Mai 2015 às 16:55
por Berti
Pessoal,

Um pequeno exemplo de form onde os dados são inseridos após AfterUpdate de uma textbox na planilha, agora não sei se estou fazendo certo, ou se não tem como, pois quero que após o AfterUpdate da textbox "Código" o SetFocus voltasse pra o mesmo textbox "Código" limpando o campo para inserir novo código, pois a intenção é usar um leitor de código de barras, e como os leitores já estão programados com o enter após a leitura, queria que focalizasse novamente nessa textbox para nova leitura de cod.barras.

Agradeço a ajuda.

Lançar dados com AfterUpdate

Enviado: 07 Mai 2015 às 17:54
por laennder
Berti, eu reescrevi um novo código, utilizando o evento KeyDown, assim dá pra verificar qual tecla foi pressionada e executar o código.

Também adaptei para remover o loop, criando uma variável para contagem, assim você ganha performance na sua macro.
Código: Selecionar todos
Private Sub txt_cod_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long
Dim sht As Worksheet

    If KeyCode = 13 Then '13 é a tecla enter
        Set sht = ThisWorkbook.Worksheets("Sheet1") 'define a planilha
        i = Application.WorksheetFunction.CountA(sht.Columns(1)) 'conta itens na coluna 1
        sht.Cells(i + 1, 1) = txt_nome.Value
        sht.Cells(i + 1, 2) = txt_tel.Value
        sht.Cells(i + 1, 3) = txt_cod.Value
        txt_cod.Value = Empty
        KeyCode = 0
    
    End If

End Sub

Lançar dados com AfterUpdate

Enviado: 07 Mai 2015 às 18:27
por Berti
Show de bola Laennder!

Eu até estava tentando usar o KeyDown antes, mas o textbox não deixava eu digitar mais que 1 dígito.

Obrigado