![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxPEL7aLPEjkHeMUXcH2yYFSN2cVb2Cj3kx06pLkwaFmHATCQyJEa0akZt1igBr8hJARA85igCatviYs2Z63XPV_zMyjARHqCKmYR-ps6pagLIdsWIK-CaWem9C5s3l9V4jIfHNPvyryQp/s400/inventario1.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinJ3ERYrAlJybHgiXynxd6RGMOva8sN7zh2LNTvFlbpKBdNDOA-nAOCZgAMMqUwmGhuRX5u3789UhR1B2BSO0tCjGhfFEfnTC3UmnNVU-zrGbXcO8S2hbA7rgzrnFadxT_dazEehNSabrG/s400/inventario2.jpg)
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
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF4gECq2GNka29wpNAko-mgSVjLWD9JVkESVOW3_75XoZ3ICnSLU2IUlfNgDqKE8te6MLwd5suo8DeI5dORuiyRprSkgrwQDx1qOlDwMKmunub_puzdcH2OeLcnt7DY3WG71ak89Z7IuAM/s400/inventario3.jpg)
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