Formulario para capturar desde lector de códigos de barras

Necesito hacer un archivo de control de inventarios para almacen capturando los códigos de barras con lector o escáner. El objetivo es que cuando el escáner lea el código aparezcan en los textbox del formulario los datos del articulo a inventariar.

Los datos de los artículos los tengo en una tabla en una hoja llamada "Lista" y los campos son los siguientes:

Campo "No Código" está en Columna B rango (B3:B5003)

Campo "Modelo" está en Columna C rango (C3:C5003)

Campo "Color" está en la Columna D rango (D3:D5003)

Campo "Talla" está en la Columna E rango (E3:E5003)

Campo "Descripción" está en la columna G rango (G3:G5003)

El formulario tiene los siguientes elementos:

6 textbox

Textbox1 para el campo "No. Código", textbox2 para el campo "Modelo"... Etc. El textbox6 es para introducir la cantidad de piezas que quiero ingresar.

1 commandbutton que lo usaré para mandar los datos a la hoja "entradas"

Solo quiero que al introducir el código del artículo en el textbox1 me aparezcan sus datos en el resto de los textbox.

Les agradecería profundamente el que me puedan ayudar ya he intentado con códigos de búsqueda pero lo he podido hacerlo. Apenas comienzo a dar mis primeros pasos en esto de la programación.

1 respuesta

Respuesta
1

¿Los códigos tienes todos e mismo numero de cifras?, es decir, por ejemplo entre 1000 y 9000 o podrían tener cifras distintas, ¿por ejemplo entre 1 y 10000?, de ser asi deberías de añadir un botón a tu formulario que sea buscar código, para que después de introducir el código y darle a ese botón sea cuando te lo busque en la hoja y te rellene los demás campos, ¿sabes algo de vba?

Hola, gracias por responder. Los códigos van a tener 8 cifras por ejemplo comienzan en el 20010000 que se sitúa en la celda b3 y se irá llenando hasta la celda b5003. Como es para inventario de ropa necesito un código para un modelo con color y talla, sin un modelo tiene 5 tallas y 7 colores necesitaría 35 códigos y aquí manejamos 75 modelos más los que van saliendo. Por lo general los números van consecutivos, pero no siempre es así aunque la tabla la ordeno en orden ascendente. Si había pensado en agregarle un botón pero como es con lector, que todavía no lo tengo pero que mi jefe me lo va a comprar, quiere que sea el registro más rápido. Estoy comenzando a aprender, tengo algunos conceptos básicos, pero busco aprender más.

De nueva cuenta agradezco la respuesta.

Si por lo que me dices los códigos van a ser siempre de 8 caracteres, dado que son códigos de barras, te indico un código para que en cuanto se ingrese el código en el textbox1 se realize la búsqueda automáticamente para que te llene los demás controles.

No se como implementaras el lector de códigos de barras dentro de excel, supongo que habrá algún control ocx genérico para eso.

En el editor vba:

Dentro del evento change del textbox1:

if len(textbox1.text) = 8 then

dim rfound as range

application.screenupdating = false

On Error Resume Next
With worksheets("Lista")
Set rFound = .Columns(2).Find(What:=textbox1.text, After:=.Cells(2, 1), LookIn:=xlValues, LookAt:= xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
If rFound Is Nothing Then

msgbox("Código no encontrado")

else

textbox2.text = rfound.offset(0,1).value

textbox3.text = rfound.offset(0,2).value

textbox4.text = rfound.offset(0,3).value
textbox5.text = rfound.offset(0,4).value

textbox6.text = rfound.offset(0,5).value
end if

End With

application.screenupdating = true

end if

El código esta sin testear, escrito "de memoria", ya me dirás donde te da error o si quieres que te aclare algo.

Gracias de nuevo.

Lo pruebo en un rato ya que tengo que salir, yo te aviso en cuanto lo ejecute, precisamente estoy esperando la compra del lector, porque es importante tenerlo para probar. He estado probando metiendo los códigos manualmente en mis pruebas pero no me ha dado resultado.

Pruebo el código y aviso. Gracias, gracias y muchísimas gracias por estar al tanto...

Ya probé el código y cuando escribo un número de los códigos que he registrado de ejemplo me lanza el msgbox "código no encontrado", y ya lo repetí varias veces con otros números y me dice lo mismo.

Parece que la variable rfound no tiene valor por eso me tira el mensaje.

Seguiré intentando...un saludo y gracias

Hay q comprobar si los valores q he puesto en la función rfound son correctos y se corresponden con la columna donde tu tienes los códigos, columns(2) y también comprobar el After = cells(2,1).

Ya mañana lo pruebo y te digo algo.

Ok. sigo intentando...

sustituye el after por: After:=.Cells(1, 2)

Que primero hay que poner la fila y después la columna, lo he probado y funciona

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas