Como restar stock empezando por la mayor cantidad

Para Dante Amor

Hola Dan!

Resulta que tengo una hoja donde guardo los datos, Hoja 4

En columna A esta los códigos

Columna B Lote

Columna F Cantidad saliente

Y columna G Stock

Tengo un botón para rebajar stock

Un combobox1 en donde me muestra los códigos selecciono cualquier código y en otro combobox 2 me muestra los lotes relacionados al código luego en un label me muestra el stock de ese lote sumados " si hay un lote con para un código me muestra el valor del stock, si hay varios lotes asociado a un código los stock son sumados y los muestra en el label"

Mi idea es la siguiente

Ej

Combobox 1

u

Selecciono en el combobox 1 luego en el combobox 2 me aparece lo siguiente

Combobox 2

Tt

Tt5

Nota "en la hoja 4 u " columna A" tiene dos lotes asociados "columna B" que son tt y tt5

Tt tiene en la "columna G" dos valores 45 y 405 y tt5 tiene en la "columna G" solo tiene el valor 56...

Por lo tanto si selecciono u y luego tt en el label me muestra la suma de los dos valores que seria 450 y si elijo tt5 en el label me mostraría 56."

Selecciono tt y me muestra en el label 450 es la suma luego la idea es que en un textbox quiero restar 200 pincho en un botón y descuenta los 200 a los valores de tt en su conjunto ...

En la columna G tt quedaría con 0 y 250...

¿No se si me explique bien o empecé enredado del principio?

Por favor si puedes ayudarme con este problema

1 respuesta

Respuesta
1

H o l a:

Envíame tu archivo para realizar pruebas.

Mi correo [email protected]

En el asunto recuerda poner tu nombre de usuario “rapo12” .

Gracias !! ya le envié el correo...

Saludos

H o l a:

Te anexo el código:

Private Sub CommandButton14_Click()
    'On Error Resume Next
    Application.ScreenUpdating = True
    If TextBoxCantidad_Reb = "" Or TextBoxCantidad_Reb = 0 Then
        MsgBox ("Ingrese cantidad mayor a cero")
        TextBoxCantidad_Reb = ""
        TextBoxCantidad_Reb.SetFocus
        Exit Sub
    End If
    '
    If ListBox2.ListCount = 0 Then
        MsgBox "No hay registro en el list"
        TextBoxCantidad_Reb.SetFocus
        Exit Sub
    End If
    '
    If ComboBoxCodigo_Reb = "" Or ComboBoxLote_Reb = "" Then
        MsgBox "Selecciona los combos"
        ComboBoxCodigo_Reb.SetFocus
        Exit Sub
    End If
    '
    For i = 0 To ListBox2.ListCount - 1
        If ListBox2.List(i, 0) = ComboBoxCodigo_Reb And _
           ListBox2.List(i, 1) = ComboBoxLote_Reb Then
            stockdisp = CDbl(ListBox2.List(i, 3))
            If CDbl(TextBoxCantidad_Reb) > stockdisp Then
                MsgBox "La cantidad es mayor al disponible"
                TextBoxCantidad_Reb.SetFocus
                Exit Sub
            End If
            Exit For
        End If
    Next
    '
    Set h = Sheets("Registros")
    Set r = h.Columns("A")
    Set b = r.Find(ComboBoxCodigo_Reb, lookat:=xlWhole)
    If Not b Is Nothing Then
        ncell = b.Address
        Do
            'detalle
            If h.Cells(b.Row, "B") = ComboBoxLote_Reb Then
                Call ordenarstock(h.Cells(b.Row, "G"), b.Row)
            End If
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    End If
    '
    cant_rebajar = CDbl(TextBoxCantidad_Reb)
    For i = 1 To valores.Count
        wval = valores(i)
        wfil = filas(i)
        If wval > 0 Then
            If wval <= cant_rebajar Then
                h.Cells(wfil, "F") = h.Cells(wfil, "F") + wval
                h.Cells(wfil, "G") = h.Cells(wfil, "G") - wval
                cant_rebajar = cant_rebajar - wval
            Else
                h.Cells(wfil, "F") = h.Cells(wfil, "F") + cant_rebajar
                h.Cells(wfil, "G") = h.Cells(wfil, "G") - cant_rebajar
                cant_rebajar = 0
            End If
            If cant_rebajar = 0 Then Exit For
        End If
    Next
    Set valores = Nothing
    Set filas = Nothing
    ComboBoxCodigo_Reb_Change
    TextBoxCantidad_Reb = ""
    MsgBox "Rebaja actualizada", vbInformation, "REBAJAS"
End Sub

':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas