Inserir textbox na ...
 
Notifications
Clear all

Inserir textbox na celula após bipar com o leitor

3 Posts
2 Usuários
0 Reactions
1,292 Visualizações
(@thiagoj)
Posts: 0
New Member
Topic starter
 

Bom dia Pessoal,

Estou com o seguinte problema de inserir um código que passei pelo leitor de código, pois esta sendo inserido de forma incorreta.

Exemplo, se o código de barras é 7891010, o meu código esta sendo inserido o 7 na "B1" o 8 na "B2" o 9 na "B3" o 1 na "B4" e assim por diante., porem queria que informasse o 7891010 na primeira linha vazia que encontrasse e assim por diante conforme fosse bipando os códigos ele fosse inserindo.(COLUNA "A" Recebe data e COLUNA "C" recebe Separador) até ai tudo certo, o proble esta no pedido que quando bipo ele insere a data e o separador, porem o pedido se tiver 6 digitos ele esta inserindo um numero em cada linha. Acredito que esteja no tipo de Sub que estou usando, mais não sei qual a correta, já tentei várias.

Private Sub txtpedido_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim linha, i As Integer
    i = 1
    Do While Range("A" & i).Value <> ""
        i = i + 1
    Loop
    linha = i
    Planilha1.Range("A" & linha).Value = Date
    Planilha1.Range("B" & linha).Value = txtpedido.Value
    Planilha1.Range("C" & linha).Value = cmbsep.Text
    Me.txtpedido = ""


End Sub
 
Postado : 13/04/2018 7:06 am
(@srobles)
Posts: 0
New Member
 

ThiagoJ,

Isso está ocorrendo justamente por causa do evento utilizado.
Repare que você está utilizando o evento certo para isso, mas não está validando corretamente. Para que funcione, você deve fazer a validação de qual tecla está sendo pressionada, e, da forma como está, a validação é para qualquer tecla.
Substitua o código contido neste evento pelo que deixo abaixo:

Private Sub txtpedido_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    'Se as teclas pressionadas forem TAB ou ENTER
    If KeyCode = vbKeyTab Or KeyCode = vbKeyReturn Then
        Dim novaLinha As Integer
        'Definimos qual será a nova linha á ser preenchida
        'retornando e armazenando a última linha preenchida
        'acrescida de + 1
        novaLinha = Planilha1.Cells(Rows.Count, 1).End(xlUp).Row + 1
        
        Planilha1.Range("A" & novaLinha).Value = Date
        Planilha1.Range("B" & novaLinha).Value = txtpedido.Value
        Planilha1.Range("C" & novaLinha).Value = cmbsep.Text
        
        Me.txtpedido = ""
    End If
End Sub

Espero ter ajudado.

Abs

 
Postado : 15/04/2018 4:12 pm
(@thiagoj)
Posts: 0
New Member
Topic starter
 

Bom dia Saulo,

Ajudou e muito, ficou até mais rápido, pois estou trabalhando com mais de 50 mil linhas e tava muito lento para encontrar ultima linha.
Obrigado.

 
Postado : 17/04/2018 9:13 am