Lo que pasa es que esa fórmula la tengo de la siguiente manera
Entonces como puedes notar en el producto
"pan de muerto chico" hay un dato que dice semana, entonces en la semana 39 hay 3 lotes
Y esa fórmula me ayuda a que cuando pasemos ala semana 40
Este reinicie el lote desde 1 y ponga al inicio la semana de referencia..
Entonces actualmente lo tengo en fórmula, pero me gustaría que una macro vaya en mi código
Porque lo manejo por medio de un listbox
Pero no logro que sea consecutivo en el listobox.
En donde dice lote, me tiene que poner la veces que es elegido ese producto
Tomando en cuenta la base de datos (la imagen1)
Ejemplo ahí debe tomar de refencia la semana en este caso 39
Y si elijo 3 veces el mismo producto debería ser (esto si en mi base de datos no he seleccionado ese producto)
39001
39002
39003
En caso de que en mi base de datos tengo los mismo productos de la misma semana 39 pero anteriormente he seleccionado
39001
39002
39003
Entonces cuando yo le de clic a mi código que tengo para pasar datos al listobox
Este me reconozca en mi base de datos que de la semana 39 que hay 3 lotes
Siempre de ese producto y de esa semana y que al pasar el dato ahora en mi listbox
Este me ponga 39004,39005,39006 y así sucesivamente, esto ya lo hice si lo hago desde mi hoja excel con fórmulas pero no logro saber como pasarlo en mi código VB,
El otro detalle que se me presenta es que cuando por alguna razón al haber capturado
39004,39005,39006 y desde mi listbox elimino el 39005 este me debería actualizar el listobox
Y colocar 39004,39005 como que una actualización.. y ya cuando le de imprimir este se guarde en mi base de datos (ya cuento con el código) y los consecutivos prevalezcan, y eso con cada producto que vaya capturando, ahí en la 1era imagen esta "galleta de manteca" que tiene otro lote por las veces que he capturado
Anexo código que uso para el listobox
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim cantidad 'Nro
X:
fila = Me.ListBox1.ListIndex
Set h = Sheets(Hoja31.Name)
'ListBox1.List(fila, 0) columna B
cantidad = InputBox("Clave: " & ListBox1.List(fila, 0) & vbCr & "Categoria: " & ListBox1.List(fila, 9) & _
vbCr & "Descripción: " & ListBox1.List(fila, 8) & vbCr & "Si estás seguro, captura la cantidad:", _
"Seleccionaste: " & ListBox1.List(fila, 1))
If IsNumeric(cantidad) Then
If Val(cantidad) > 0 Then
'agregar el producto al pedido
'FormPedido.ListBox1.AddItem Me.ListBox1.List(Me.ListBox1.ListIndex, 0) ' Producto
NOTAS.ListBox1.ColumnCount = 9
NOTAS.ListBox1.AddItem cantidad 'Pedido
NOTAS.ListBox1.List(NOTAS.ListBox1.ListCount - 1, 1) = ARTICULOS.ListBox1.List(fila, 6) ' pzas x pedido
NOTAS.ListBox1.List(NOTAS.ListBox1.ListCount - 1, 2) = ARTICULOS.ListBox1.List(fila, 0) ' clave
NOTAS.ListBox1.List(NOTAS.ListBox1.ListCount - 1, 3) = ARTICULOS.ListBox1.List(fila, 2) 'producto
NOTAS.ListBox1.List(NOTAS.ListBox1.ListCount - 1, 4) = cantidad * ARTICULOS.ListBox1.List(fila, 6) 'cantidad
NOTAS.ListBox1.List(NOTAS.ListBox1.ListCount - 1, 5) = (Date + ARTICULOS.ListBox1.List(fila, 12)) 'caducidad
NOTAS.ListBox1.List(NOTAS.ListBox1.ListCount - 1, 6) = "lote"
NOTAS.ListBox1.List(NOTAS.ListBox1.ListCount - 1, 7) = Format(ARTICULOS.ListBox1.List(fila, 3), "$#,##0.00") 'costo
NOTAS.ListBox1.List(NOTAS.ListBox1.ListCount - 1, 8) = Format(ARTICULOS.ListBox1.List(fila, 3) * cantidad, "$#,##0.00") 'importe
NOTAS.ListBox1.ColumnWidths = "80 pt;80 pt;60 pt;220 pt;80 pt;140 pt;90 pt;100"
'este cuenta cuantos listbox estan en uso
For cuenta = 0 To NOTAS.ListBox1.ListCount - 1
If NOTAS.ListBox1.List(cuenta, 0) <> "" Then
Mm = Mm + 1
End If
Next
ARTICULOS.Label18.Caption = Mm 'MsgBox "hay un total de: " & m & " datos, y serán anotados en el textbox1"
NOTAS.Label18.Caption = Mm
'este es para sumar los importes de los listbox
For i = 0 To NOTAS.ListBox1.ListCount - 1 'ajustar nbre del control ListBox
tot = Val(tot) + NOTAS.ListBox1.List(i, 8)
Next i
NOTAS.Label19.Caption = Format(Val(tot), "$#,##0.00")
ARTICULOS.Label19.Caption = Format(Val(tot), "$#,##0.00")
NOTAS.Label25.Caption = CONVERTIRNUM(NOTAS.Label19.Caption)
'Unload Me
Else
MsgBox "Número menor a 0", vbExclamation + vbOKOnly, "Atención"
GoTo X
End If
End If
End Sub
de antemano gracias
Si es necesario abrir más preguntas con gusto, saludos