Como llenar dinámicamente un ListBox

Tengo dos hojas de excel llamadas Inventario y Diario, la hoja activa es la de diario y tengo un formulario desde donde voy cargando los artículos, este formulario consta de:
TexBox1 - Código Articulo
ComboBox1 - Nombre de Articulo
TextBox2 - Me presenta el Stock
TextBox3 - Me presenta el precio
TextBox4- Ingreso la cantidad de un articulo determinado que sale del inventario
Se como cargar los datos dinámicamente desde el inventario solo seleccionando el articulo en el combobox y bueno ir haciendo descuento de inventario y guardando la venta en la hoja de diario poro uno a uno.
Como puedo hacer esto mismo en un ListBox pero que al ingresar todos los datos en cada uno de los Textboxs y combobox y presionar enter estos datos se carguen el ListBox completando una serie de filas y que se guarden luego de presionar el botón guardar.
Esto haciendo el descuento en inventario de cada uno de los artículos y que se guarden en la hoja de diario.

1 respuesta

Respuesta
4

Este sería el código

Private Sub CommandButton1_Click()
'Por.DAM
'Botón para pasar al listbox
ListBox1.ColumnCount = 5
ListBox1.AddItem TextBox1
ListBox1.List(ListBox1.ListCount - 1, 1) = ComboBox1
ListBox1.List(ListBox1.ListCount - 1, 2) = TextBox2
ListBox1.List(ListBox1.ListCount - 1, 3) = TextBox3
ListBox1.List(ListBox1.ListCount - 1, 4) = TextBox4
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
ComboBox1.SetFocus
End Sub
Private Sub CommandButton2_Click()
'Por.DAM
'bontón para actualizar inventario y diario
For i = 0 To ListBox1.ListCount - 1
    'resta del inventario
    If IsNumeric(ListBox1.List(i, 0)) Then
        cod = Val(ListBox1.List(i, 0))
    Else
        cod = Val(ListBox1.List(i, 0))
    End If
    Set fila = Sheets("inventario").Range("A:A").Find(cod)
    Sheets("inventario").Cells(fila.Row, "C") = _
        Sheets("inventario").Cells(fila.Row, "C") - Val(ListBox1.List(i, 4))
    'Agrega en diario
    uf = Sheets("diario").Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("diario").Range("A" & uf) = ListBox1.List(i, 0)
    Sheets("diario").Range("B" & uf) = ListBox1.List(i, 1)
    Sheets("diario").Range("C" & uf) = ListBox1.List(i, 2)
    Sheets("diario").Range("D" & uf) = ListBox1.List(i, 3)
    Sheets("diario").Range("E" & uf) = ListBox1.List(i, 4)
    MsgBox "Inventario y diario actualizado", vbInformation
    ListBox1.Clear
    ComboBox1.SetFocus
Next
End Sub

Si quieres ver como funciona con un ejemplo sencillo, te anexo mi archivo.

https://www.dropbox.com/s/n5cwccpltvamrxk/inventario%20y%20diario.xlsm

Saludos. DAM
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas