lunes, 11 de mayo de 2009

Ejemplo 2, programación de un Inventario

Este prototipo ingresa nuevos artículos que deja guardados en la hoja Excel y permite hacer ventas rebajando el saldo. Consta de dos formularios, el principal tiene la ventana para rebajar las ventas (Insertar, User form)



La programación de los elementos de la form es la siguiente

Para el combobox (se cambió en nombre a ComboNombre)

Private Sub ComboNombre_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Rem al escoger un item del combobox hace lo siguiente
    Rem coloca el costo en textbox1
    TextBox1.Text = Hoja1.Cells(2, 2)
    Rem coloca el precio de venta (lista) en textbox2
    TextBox2.Text = Hoja1.Cells(2, 3)
End Sub


Para el Command Button 1 (Agregar artículo)

Private Sub CommandButton1_Click()
    Rem para agregar un nuevo articulo
    Rem se carga userform2
    Load UserForm2
    Rem se muestra userforrm2
    UserForm2.Show
End Sub


Para el Command Button 2 (Ingresar venta)

Private Sub CommandButton2_Click()
    Rem al ingresar la venta
    Rem el saldo esta en hoja1.cells de la linea de combo que elegimos
    Rem que en la hoja exel seria la posicion combonombre.listindex + 1
    Rem recordar el formato Hoja1.Cells(linea,columna)
    Rem luego toma el valor (cantidad) almacenado en esa celda y le resta el valor de textbox3.text
    Hoja1.Cells(ComboNombre.ListIndex + 1, 2) = Hoja1.Cells(ComboNombre.ListIndex + 1, 2) - TextBox3.Text
    Rem con eso deja la cantidad rebajada
    Rem luego limpia los textbox combo y pone el foco en combonombre
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox4.Text = ""
    ComboNombre.Text = ""
    ComboNombre.SetFocus
End Sub


Para Textbox3 (después de ingresar la cantidad vendida)

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Rem calcula el total de la venta y lo coloca en textbox4.text
    TextBox4.Text = TextBox2.Text * TextBox3.Text
End Sub


Para cuando se cargue la User Form

Private Sub UserForm_Activate()
    Rem llena los valores del combo cada vez que parte el programa userform_activate
    Rem para ello primero parte de la posicion 2
    Rem y cambia los valores de z desde 1 a 500
    Rem y con el metodo additem llena al combo de valores (nombres de articulos)
    If Hoja1.Cells(1, 1) <> "" Then
        For z = 1 To 500
            ComboNombre.AddItem Hoja1.Cells(z, 1)
        Next z
        Rem deja en blanco el combo
        ComboNombre.Text = ""
    End If
End Sub


Luego se crea la segunda User From con Insertar, Userform



En este caso solos se programa el Command Buttom

Private Sub CommandButton1_Click()
    Rem posicion del indice en la celda 1,1
    indice = Hoja1.Cells(1, 1)
    Rem si el indice es cero se cambia a uno
    If indice = "" Then
        indice = 1
        Hoja1.Cells(1, 1) = indice
    End If
    Rem incrementa el indice en 1 lugar que es la fila donde debe grabar
    indice = indice + 1
    Rem coloca el nuevo valor del indice -incrementado- en la celda 1,1
    Hoja1.Cells(1, 1) = indice
    Rem escribe los contenidos de los textbox en la hoja 1
    Rem la fila es el valor del indice y la columna varia segun el contenido
    Hoja1.Cells(indice, 1) = TextBox1.Text
    Hoja1.Cells(indice, 2) = TextBox2.Text
    Hoja1.Cells(indice, 3) = TextBox3.Text
    Hoja1.Cells(indice, 4) = TextBox4.Text
    Rem limpia todos los textbox
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox4.Text = ""
    Rem coloca el foco en textbox1
    TextBox1.SetFocus
End Sub

No hay comentarios:

Publicar un comentario