Como puedo ingresar datos desde un formulario en Excel a una base de datos con un lector de códigos de barra

Tengo que hacer un archivo en Excel, que por medio de un formulario y una textbox pueda pistolear un código de barras y este automáticamente me lo registre en una base de datos, y se limpie la textbox, para ingresar otro código y que este nuevamente se añada a la lista.

He logrado hacerlo por medio de un botón que ejecuta una macro y que toma los datos y los inserta en la lista, pero tengo que leer muchos códigos y es engorroso tener que apretar el botón cada vez.

En los supermercados tienen un sistema que al leer los códigos los inserta la en lista que luego se convierte en nuestra boleta y pueden leen los códigos uno tras otro sin tener que apretar ningún botón.

Respuesta
2

Te anexo el código del formulario:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    hoja = "Hoja1"
    col = "A"
    '
    Set h1 = Sheets(hoja)
    u = h1.Range(col & Rows.Count).End(xlUp).Row + 1
    '
    h1.Range("A" & u) = TextBox1
    TextBox1 = ""
    Cancel = True
End Sub

Cambia en el formulario "Hoja1" por el nombre de la hoja y "A" por el nombre de la columna en donde quieres los datos.

El formulario deberá tener 2 textbox, en el texbox1 vas a pistolear, el textbox2, deberá tener la propiedad Locked = true.

Te anexo mi formulario para que lo revises.

https://www.dropbox.com/s/2pxpiewxd3m5age/ingresar%20cod%20barras.xlsm?dl=0 


Saludos. Dante Amor

Dante muchas gracias, pero el archivo no ingresa datos, sólo borra una vez se ingresa el código, me podrías ayudar con eso?

Tienes que configurar tu pistola para que después de escanear el código envíe un "enter", después del enter, la macro se activa y deberá guardar el dato en la columna A de la hoja1

¡Gracias! ...

Dante,  exporte el formulario y la cambie de columna y me funcionó no entiendo qué pasó, lo que sí, es que cierro el formulario y lo vuelvo a abrir y se salta un espacio, pero es lo de menos,

te pasaste mil gracias

Se salta un espacio en la hoja, porque asumí que tienes encabezado en la primera fila. Pero si cambias de columna, entonces pon la siguiente macro para que empiece en la primera fila

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    hoja = "Hoja1"
    col = "A"
    '
    Set h1 = Sheets(hoja)
    u = h1.Range(col & Rows.Count).End(xlUp).Row + 1
    If u = 2 And h1.Cells(1, "A") = "" Then u = 1
    '
    h1.Range("A" & u) = TextBox1
    TextBox1 = ""
    Cancel = True
End Sub

Danto, de este espacio te hablo, que al cerrar el formulario y abrirlo de nuevo para ingresar datos, se salta un espacio. Te adjunto imagen.

Cambia la macro por esto:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If TextBox1 = "" Then Exit Sub
    hoja = "Hoja1"
    col = "A"
    '
    Set h1 = Sheets(hoja)
    u = h1.Range(col & Rows.Count).End(xlUp).Row + 1
    If u = 2 And h1.Cells(1, "A") = "" Then u = 1
    '
    h1.Range("A" & u) = TextBox1
    TextBox1 = ""
    Cancel = True
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then End
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas