Boton aceptar en form compras (vba excel)

Sr Dante. Estuve pegándole un vistazo a su página. Y le mande por correo mi proyecto en excel para que me ayudara.

Con ayuda del compañero Sebas Torres, conseguí mandar los datos de la compra a la hoja COMPRAS.

Necesito que al darle "aceptar" me haga recuento de stock desde la hoja compras hasta la hoja artículos

1 Respuesta

Respuesta
1

Sr dante. Hace días le escribí.

¿Alguna sugerencia?

A la espera de su ayuda, voy haciendo pruebas. Creo que estoy cerca, pero no consigo hacerlo funcionar.

Este es el form desde donde añado articulos al listbox del form compras (con su ayuda DANTE)

Este es el codigo que tengo en el form "FACTURAR ARTICULO"

Private Sub cbx_nombre_Change()
Dim Fila As Long
Dim Final As Long
Me.cbx_nombre.BackColor = &H80000005
If cbx_nombre.Text = "" Then
    limpiar_controles
End If
Final = GetUltimoR(Hoja2)
    For Fila = 2 To Final
        If cbx_nombre.Text = Hoja2.Cells(Fila, 2) Then
            Me.txt_codigo = Hoja2.Cells(Fila, 1)
            Me.txt_codigo.Text = Format(Me.txt_codigo, "00000")
            Me.txt_compra = Hoja2.Cells(Fila, 4)
            Me.txt_stock_inicial = Hoja2.Cells(Fila, 6)
            txt_compra = Format(txt_compra, "currency")
            Exit For
        End If
    Next
            ruta = ThisWorkbook.Path & "\imagenes\"
            arch = cbx_nombre.Text & ".jpg"
            If Dir(ruta & arch) <> "" Then
                img_articulo_buscar.Picture = LoadPicture(ruta & arch)
                img_articulo_buscar.PictureSizeMode = fmPictureSizeModeStretch
            Else
                If Dir(ruta & "00000.jpg") <> "" Then
                    img_articulo_buscar.Picture = LoadPicture(ruta & "00000.jpg")
                End If
                End If
End Sub
Private Sub cbx_nombre_Enter()
Dim Fila As Long
Dim Final As Long
Dim Lista As String
For Fila = 1 To cbx_nombre.ListCount
    cbx_nombre.RemoveItem 0
Next Fila
Final = GetUltimoR(Hoja2)
    For Fila = 2 To Final
        Lista = Hoja2.Cells(Fila, 2)
        cbx_nombre.AddItem (Lista)
    Next
End Sub
Sub limpiar_controles()
    cbx_nombre.Value = ""
    txt_codigo.Value = ""
    txt_compra.Value = ""
    txt_stock_inicial = ""
    txt_cantidad.Value = ""
    txt_importe.Value = ""
    txt_stock_final = ""
End Sub
Private Sub cmb_aceptar_Click()
        If txt_cantidad.Value = "" Then
            MsgBox "Debes ingresar una cantidad.", vbInformation, "fjpg GAMES"
            txt_cantidad.SetFocus
            txt_importe = ""
        Exit Sub
    End If
    'agregar el artículo al listbox de fr_salidas_ventas
    If cbx_nombre.ListIndex > -1 Then
        With frm_compras.ListBox1
            .AddItem cbx_nombre
            a = .ListCount - 1
            .List(a, 1) = txt_codigo
            .List(a, 2) = txt_cantidad
            .List(a, 3) = txt_compra
            .List(a, 4) = txt_importe
            txt_total = Format(txt_total, "currency")
            For i = 0 To a
                w_txt_total = w_txt_total + CDbl(.List(i, 4))
                Next
            frm_compras.txt_total = w_txt_total
            End With
    End If
   Call limpiar_controles
End Sub
Private Sub cmb_volver_Click()
Unload Me
End Sub
Private Sub txt_cantidad_Change()
Dim Fila As Long
Dim Final As Long
Dim Registro As Long
Dim totImporte As Currency
Dim vPrecio_compra As Currency
    If txt_cantidad.Value = "" Then
            txt_importe = ""
            txt_stock_final = ""
        Exit Sub
    End If
If txt_cantidad = "" Then Exit Sub      'esta es para que no ejecute el resto cuando limpias los controles
vcompra = Me.txt_compra.Value
'Determino el final del listdo de existencias
Final = GetUltimoR(Hoja2)
    'Compruebo que el código ingresado en el ComboBox, coincida en hoja de existencias
 ' para realizar la respectiva operación aritmética
    For Registro = 1 To Final
        If cbx_nombre.Text = Hoja2.Cells(Registro, 1) Then
            Exit For
        End If
    Next
    totImporte = Val(Me.txt_cantidad) * vcompra
    Me.txt_importe.Value = FormatNumber(totImporte, 2)
    txt_importe = Format(txt_importe, "currency")
    txt_stock_final = Val(Me.txt_stock_inicial) + Val(Me.txt_cantidad)
End Sub
Private Sub UserForm_Initialize()
txt_importe = Format(txt_importe, "currency")
End Sub

Necesitaria añadir al form "FACTURAR ARTICULO" estas lineas de codigo??

Public Fila
Dim h
Private Sub cmb_aceptar_Click()
'Por.Dante Amor
    If Fila > 0 Then
        h.Cells(Fila, "f") = txt_stock_final.Value
    End If
End Sub
Private Sub UserForm_Click()
'Por.Dante Amor
    Set h = Sheets("ARTICULOS")
    If Fila > 0 Then
        txt_stock_inicial.Value = h.Cells(Fila, "F")
    End If
End Sub

Alguna

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas