Tengo una serie de productos y los tengo en una columna con sus nombres, en otra columna he puesto ingreso, otra gasto, todo esto en una hoja mensual, otra columna activada a la del mes anterior en gasto etc, el gasto lo introduzco manual y me va restando del stock, estos productos tienen código de barras, y quisiera saber si puedo asociar ese código de barras al producto y cuando pase el código de barras con el lector me añada uno en gastos y me reste en stock
1 respuesta
Respuesta de Victor Perdomo
2
2
Victor Perdomo, Conocimientos avanzados en Excel, programación VB
Creo que te puedo ayudar, solo que en primer lugar debes poner una columna con todos los códigos de barra de cada producto. Seria una macro muy sencilla, ya que la lectora es como un teclado que ingresa el código, solo seria cuestión de hacer un bucarv() u otra función parecida.
HOLA! ¿Puedes ser más concreta? Es que no he hecho nunca una macro. ¿ ¿Y cuándo leyera el código de barras me sumaria en la otra celda el gasto? Un saludo Fer
Es correcto, solo dime: ¿Tienes en la tabla una columna con el código de cada producto?, porque si no es así tienes que hacerla
HOLA! Todavía no los tengo, pero lo pongo en un momento, ¿después cómo hago para que cuando lea el código de barras me sume uno el la columna de gastos? Un saludo Fer
Ya termine el código, salio un poco más largo de lo que creía, pero creo que funciona bien. Solo tienes que hacerle unos cambios para que funcione con tu hoja. Por seguridad hazlo en una copia de tu archivo :D 1. En tu hoja de inventario busca una celda, esta celda sera el lugar donde el lector dejara el código, en mi ejemplo es la celda "e3". Cambiala de color o ponle un tituo, como quieras. 2.Presiona alt+f11 para abrir el editor de vb 3. Al lado izquierdo busca en el panel de proyectos, la hoja en que tienes inventario, dale dobleclick. Se abrirá a la derecha una hoja en blanco 4.Pega el código 5.Hay unos valores en el código que tienes que cambiar, busca donde dice lector="e3" y ponle la celda donde el lector dejara el código, busca donde dice codigo="a1" y pon la celda donde esta el emcabezado de lo códigos que te dije que agregaras, busca donde dice gasto="b1", y pon la celda donde esta el encabezado de gasto. 6.Cierra el vb, y 7.Para que la macro funcione, solo debes seleccionar la celda de la lectora y listo, puedes ingresarlos manualmente también 8.Listo ya debería de funcionar ;) Se me olvidaba algo, el formato de las celdas del código y de la celda de la lectora debe ser texto. Cualquier duda solo preguntame, espero que sea la solución a tu pregunta. Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim lector As String lector = "e3" 'cambia esta celda por la celda en la que esta la lectora If Not Application.Intersect(Target, Range(lector)) Is Nothing Then buscar (Range(lector).Value) Range(lector).Select End If End Sub Private Sub buscar(dato As String) Dim codigo As String, gasto As String Dim n As Long Dim fc As Long Dim cc As Long Dim fg As Long Dim cg As Long Dim encontrado As Boolean Código = "g18" 'cambia esta celda por la celda en la que esta el emcabezado de código gasto = "h18" 'cambia esta celda por la celda en la que esta el emcabezado de gasto Range(codigo).Select n = Range(codigo).CurrentRegion.Rows.Count + (Range(codigo).Row - 1) fc = Range(codigo).Row + 1 cc = Range(codigo).Column encontrado = False fg = fc cg = Range(gasto).Column While fc <= n If (Cells(fc, cc).Value = dato) Then Cells(fc, cg).Value = Cells(fc, cg).Value + 1 encontrado = True End If fc = fc + 1 Wend If encontrado = False Then MsgBox ("codigo inexistente") End If End Sub
Hola! He probado tal como dices y si que me ha funcionado! Pero ahora después de cerrar el programa y volverlo a abrir, ya no me funciona ¿qué puede pasar? Un saludo Gracias
-_- Q rarro, intenta poner el nivel de seguridad de las macros en medio. Herramientas->Macro->seguridad-> medio o bajo
Hola! He hecho lo que me has dicho, y he vuelto a insertar el código y ahora me funciona biennnn! Supongo que no lo habría guardado, ahora lo he guardado je je Quería hacerte una ultima pregunta, tengo algún producto antiguo que ahora lo han cambiado pero sigue teniendo el mismo nombre, ¿puedo poner los dos códigos de barras en la misma celda? Un saludo Fer
De poder se puede, habría que modficar el código, pero se pierde el sentido de tener códigos únicos para cada producto, ademas ten en cuenta que de esta manera, si tienes un mismo producto con dos códigos, puedes separarlos y de esta manera llevar un control de cuantos tienes de cada uno. Lo que también puedes hacer es tener una fila para cada producto, con diferente código, y una adicional con un código en blanco, o cualquier otro valor, como "antiguo" o lo que quieras, igual la lectora no lo reconocerá, y harás un sumar(), con las celdas de los dos productos. Espero sea la respuesta, si es así da por finalizada la pregunta. Cualquier duda que tengas no dudes en hacérmela saber, chauuu
1 comentario
Hola, he probado lo que decís pero pone código inexistente - Paula Murillo
Hola, he probado lo que decís pero pone código inexistente - Paula Murillo