Ingresar con lector láser códigos de barra

Consulta, si es que me puedes ayudar, tengo un formulario en donde ingresos los códigos de barra mediante un lector láser, que tiene un botón aceptar y le asigné este código que funciona,

Private Sub CommandButton1_Click()
Sheets("rendicion").Activate
If TextBox1 = "" Then
MsgBox "Está dejando campos requeridos vacios favor complete", vbExclamation, "Correo"
Else
Range("B" & Cells.Rows.Count).End(xlUp).Offset(1).Select
ActiveCell = TextBox1.Value
TextBox1 = ""
TextBox1.SetFocus
End If
End Sub

Pero hay un pequeño detalle, es que al ingresar el código de barra de un documento, no se limpia al instante el textbox, se direcciona al botón ACEPTAR y debo dar nuevamente con el lector al código de barras o presionar ENTER y lo deja insertado en el rango columna B, lo cual recién ahí se limpia, lo que necesito es que se limpie e ingrese al instante el dato al marcar con el lector láser y volver ingresar otro código.

¿Dónde habría que hacer la modificación?

Si puedes ayudarme

1 Respuesta

Respuesta
1

H o l a:

¿Tu formulario es un userform o tienes los controles directamente en la hoja?

es un userform y todo el código para que funcione es este :

_____________________________________________________________________

Private Sub CommandButton1_Click()
Sheets("rendicion").Activate
If TextBox1 = "" Then
MsgBox "Está dejando campos requeridos vacios favor complete", vbExclamation, "Correo"
Else
Range("B" & Cells.Rows.Count).End(xlUp).Offset(1).Select
ActiveCell = TextBox1.Value
TextBox1 = ""
TextBox1.SetFocus
End If
End Sub

________________________________________________________________

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If Len(TextBox1) = 20 Then
TextBox1 = 0 & TextBox1
CommandButton2.Enabled = True
Exit Sub
Else
End If
End Sub

____________________________________________________________________

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 45 And KeyAscii <= 75 Then KeyAscii = 0
End Sub

____________________________________________________________________

atento a tu ayuda ;)

Utiliza el siguiente código y me comentas:

Private Sub CommandButton1_Click()
'Act.Por Dante Amor
    If Len(TextBox1) = 20 And TextBox1 <> "" Then
        TextBox1 = 0 & TextBox1
        Set h = Sheets("rendicion")
        u = h.Range("B" & Rows.Count).End(xlUp).Row + 1
        h.Cells(u, "B") = TextBox1
        TextBox1 = ""
        TextBox1.SetFocus
    Else
        MsgBox "Está dejando campos requeridos vacios favor complete", vbExclamation, "Correo"
        TextBox1.SetFocus
    End If
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Act.Por Dante Amor
    CommandButton1_Click
    Cancel = True
End Sub
'
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii < 45 And KeyAscii <= 75 Then KeyAscii = 0
End Sub

Si el lector de código de barras está configurado para dar enter después de la lectura, entonces en automático se pasará el dato a la hoja, limpiará el textbox1 y te pondrá nuevamente en el textbox1 para la siguiente captura.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas