Actualización de stock y registrar compra (vba excel)

Hace un tiempo me ayudaron con un código, para registarr compra y actualizar stock.

Pero cambie de version excel de 2007(creo) a 2016. Y ahora no me funciona.

La primera parte del código, la de registrar la compra en la hoja "ENTRADAS", me funciona perfecto.

Pero la segunda, la de actualizar el stock, en la hoja "ARTICULOS" falla.

Dejo el código que tengo y una imagen.

El codigo

Private Sub lb_compras_articulo_Click()
Hoja3.Select
'Act. Adriel Ortiz Mangia
Set h1 = Sheets("ENTRADAS")
Set h2 = Sheets("ARTICULOS")
'
        Hoja7.Range("D3").Value = Hoja7.Range("D3").Value + 1
        lb_entrada.Caption = Hoja7.Range("D3")
        Hoja7.Range("D6").Value = Hoja7.Range("D6").Value + 1
        lb_compra.Caption = Hoja7.Range("D6")
For fila = 0 To ListBox1.ListCount - 1
    Ufila = Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Cells(Ufila, 1) = Me.lb_entrada.Caption
    h1.Cells(Ufila, 2) = Date
    h1.Cells(Ufila, 3) = "COMPRA"
    h1.Cells(Ufila, 4) = Me.lb_compra.Caption
    h1.Cells(Ufila, 8) = Me.lb_proveedor_pago.Caption
    h1.Cells(Ufila, 9) = Me.lb_proveedor_nombre.Caption
    '
    h1.Cells(Ufila, 10) = ListBox1.List(fila, 0)
    h1.Cells(Ufila, 11) = ListBox1.List(fila, 1)
    h1.Cells(Ufila, 12) = ListBox1.List(fila, 2)
    h1.Cells(Ufila, 13) = ListBox1.List(fila, 3)
    h1.Cells(Ufila, 15) = ListBox1.List(fila, 4)
    h1.Cells(Ufila, 18) = Me.txt_total.Value
    '
    dato = ListBox1.List(fila, 1)
    '
    Set r = h2.Columns("B")
    Set b = r.Find(Val(dato), lookat:=xlWhole)
    If Not b Is Nothing Then
        h2.Cells(b.Row, "F") = h2.Cells(b.Row, "F") + ListBox1.List(fila, 2)
    End If
    '
    MsgBox "COMPRA registrada y STOCK actualizado.", vbInformation, ""
    Unload Me
Next
End Sub

Alguna ayuda?

Respuesta
1

Fallo no es.

Solo que no hace nada..

1 respuesta más de otro experto

Respuesta
1

Aquí esta el código:

Private Sub lb_guardar_Click()
Dim h1 As Worksheet: Set h1 = Sheets("ENTRADAS")
Dim h2 As Worksheet: Set h2 = Sheets("ARTICULOS")
Dim dato As String
Dim Cod As Range
Dim Fila As Long
For Fila = 0 To ListBox1.ListCount - 1
    Ufila = Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Cells(Ufila, 1) = Me.lb_entrada.Caption
    h1.Cells(Ufila, 2) = Date
    h1.Cells(Ufila, 3) = "Compra"
    h1.Cells(Ufila, 4) = Me.lb_compra.Caption
    h1.Cells(Ufila, 10) = Me.lb_prov_pago.Caption
    h1.Cells(Ufila, 11) = Me.lb_prov_nombre.Caption
    h1.Cells(Ufila, 12) = ListBox1.List(Fila, 0)
    h1.Cells(Ufila, 13) = ListBox1.List(Fila, 1)
    h1.Cells(Ufila, 14) = ListBox1.List(Fila, 2)
    h1.Cells(Ufila, 15) = ListBox1.List(Fila, 3)
    h1.Cells(Ufila, 17) = ListBox1.List(Fila, 4)
    h1.Cells(Ufila, 20) = Me.txt_total.Value
    dato = ListBox1.List(Fila, 0)
    With h2
        Set Cod = .Range("A:A").Find(dato)
        If Not Cod Is Nothing Then
            .Cells(Cod.Row, 6).Value = .Cells(Cod.Row, 6).Value + ListBox1.List(Fila, 2)
            MsgBox "Compra registrada y Stcok actualizado.", vbInformation, "DN..."
        Else
            MsgBox "Hubo un problema al encontrar el articulo en la BD.", vbExclamation, "Err..."
        End If
    End With
    Unload Me
Next
End Sub

Andy

Hola... GRACIAS por tu ayuda.

Decirte que ahora ese código funciona, pero al revés. Contabiliza el stock, pero no resgistra la compra en la hoja "ENTRADAS".

Bueno y yo te dire que la parte del codigo que registra la compra no la cambie, si te fijas es la misma. Como te dije en el email, tienes MUCHO que arreglar. Si vas a dar esas calificaciones, te pido por favor que no me vuelvas a pedir ayuda por mi email personal y te limites a esperar la respuesta de los expertos aqui en el foro.

Salu2

Madre mía yo flipo en este foro...

Pues si el código no hace nada en la hoja de entradas no te voy a valorar excelente...

Es increíble...

Ultimo mensaje... Adiós!

De hecho no pido que valoren excelente. Sino que NO valoren nada hasta que el problema se haya solucionado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas