Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como CREAR una FATURA o Sale INVOICE – AVISA Sino hay STOCK Suficiente en EXCEL VBA #541

Factura con Excel - Control de stock

CREAR FACTURA Y CONTROLAR CANTIDAD DE STOCK

En el post se muestra como se puede crear una factura con Excel con Macro y que controle el stock a facturar, es decir cuando se selecciona un item que se desea vender, la macro detecta la cantidad de stock existente en depósito y compara con la cantidad que se intenta facturar, si lo que se desea facturar es mayor al stock existente sale un aviso dando la opción de facturar el total de stock existente.

Necesitas aprender a operar Excel, click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

  
 

https://www.youtube.com/watch?v=Ska7piEfWuc&list=PLdK9H5dMIfQi1fNgZwpRu_pr6l-xwAWmb

Mira la macro en acción, una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

Controlar Stock al Facturar con Excel

El ejemplo muestra la manera de enviar una alerta si la cantidad que se pretende facturar excede la cantidad que hay registrada en stock, en caso que haya una cantidad menor de stock, sale un mensaje el cual habilita a facturar la cantidad existente o simplemente cancelar y no facturar dicho producto.

En este ejemplo al seleccionar el producto que está listado en el listbox con los productos, se carga en una variable la cantidad de stock ya fue consultada al filtrar el producto buscado, dicha cantidad se carga en la variable denominada «st», esa variable es pública en el proyecto de VB  denominado Como Crear una Factura con Macros de Excel, es decir dicha variable puede ser usada en cualquier parte de la macro, sea en el formulario, otro formulario o módulo.

Se toma del Userform1 la cantidad de stock del producto seleccionado se lo compara con la cantidad ingresada del producto a facturar, si es menor la cantidad de stock sale un mensaje avisando dicha situación y pregunta si se desea facturar el stock que hay y no la cantidad ingresada, en caso que se desee facturar el stock existente solamente, procede a agregarlo a los productos a vender, en caso negativo la macro no hace absolutamente nada.

En el link siguiente se encuentra el Playlist con todos los vídeos relacionados para crear una factura con Excel paso a paso.

Explicación del código para crear una factura paso a paso y verificar stock al facturar

Se debe obtener del Userform1 la cantidad de producto existente que hay en stock del articulo seleccionado, el cual se encuentra en la columna 6 del Listbox donde se listan los productos, haciendo el valor de la variable publica «st» igual a la cantidad de stock disponible del producto seleccionado, con el siguiente código que está en el Userform1.

st = ListBox1.List(fila, 6)

Luego de ingresar la cantidad a facturar en el Userform3, se verifica que la cantidad ingresada sea menor a la cantidad de stock, en ese caso la macro no hace nada, ya que la cantidad de producto a facturar es menor al stock existente.

En caso que la variable «st» sea menor a la cantidad ingresada en el Textbox1 del Userform3, se ejecuta la macro, el código es el siguiente:

If st < can Then
respuesta = MsgBox(«¿La cantidad que intenta facturar es mayor al stock que es igual a » & st & » desea facturar esa cantidad?», vbCritical + vbYesNo)
If respuesta = 6 Then
can = st
Else
Unload UserForm3
Exit Sub
End If
End If

Como se puede observar al ser el stock menor al ingresado en el Textbox1 del Userform3, sale un Msbox que pregunta si se desea facturar la cantidad existente a pesar de ser menor que la cantidad requerida, en caso negativo termina la macro, en caso que se desea facturar la cantidad que haya, aunque sea menor que la cantidad que se requiere facturar, la macro carga en el Listbox de productos a facturar, el producto seleccionado y la cantidad existente en stock.

Código VBA para crear una validación en celda al insertar un dato

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
On Error Resume Next
Dim t As Variant, tot As Variant
If UserForm3.TextBox1 = Empty Or UserForm3.TextBox1 = 0 Then Exit Sub
If UserForm2.ListBox1.ListCount > 50 Then
MsgBox («No puede ingresar más de 16 articulos por factura»), vbCritical, «AVISO»
Exit Sub
End If
Set a1 = Sheets(«Articulos»)

If KeyCode = 13 Then
can = Val(UserForm3.TextBox1)
‘Verifica que no se facture más de lo que hay en stock
If st < can Then
respuesta = MsgBox(«¿La cantidad que intenta facturar es mayor al stock que es igual a » & st & » desea facturar esa cantidad?», vbCritical + vbYesNo)
If respuesta = 6 Then
can = st
Else
Unload UserForm3
Exit Sub
End If
End If

For x = 0 To UserForm2.ListBox1.ListCount – 1
If UserForm2.ListBox1.List(x, 0) = cod Then
fila = x
GoTo sale:
End If
Next x
sale:

If fila <> «» Then
cantOrig = CDec(UserForm2.ListBox1.List(fila, 4))
newcant = cantOrig + can
UserForm2.ListBox1.List(fila, 4) = Format(newcant, «#,##0.00;-#.##0,00»)
UserForm2.ListBox1.List(fila, 5) = Format(((newcant * pv) * 0.16), «#,##0.00;-#.##0,00»)
UserForm2.ListBox1.List(fila, 6) = Format(((newcant * pv) * 1.16), «#,##0.00;-#.##0,00»)
Unload UserForm3

Else
UserForm2.ListBox1.AddItem cod
UserForm2.ListBox1.List(UserForm2.ListBox1.ListCount – 1, 1) = art
UserForm2.ListBox1.List(UserForm2.ListBox1.ListCount – 1, 2) = mar
UserForm2.ListBox1.List(UserForm2.ListBox1.ListCount – 1, 3) = Format(pv, «#,##0.0000;-#.##0,0000»)
UserForm2.ListBox1.List(UserForm2.ListBox1.ListCount – 1, 4) = Format(can, «#,##0.00;-#.##0,00»)
UserForm2.ListBox1.List(UserForm2.ListBox1.ListCount – 1, 5) = Format(((can * pv) * 0.16), «#,##0.00;-#.##0,00»)
UserForm2.ListBox1.List(UserForm2.ListBox1.ListCount – 1, 6) = Format(((can * pv) * 1.16), «#,##0.00;-#.##0,00»)
Unload UserForm3
End If

For x = 0 To UserForm2.ListBox1.ListCount – 1
t = CDec(UserForm2.ListBox1.List(x, 6))
tot = tot + t
t = 0
Next x

UserForm2.Label16.Caption = «Total » & Format(tot, «#,##0.00 «»U$S»»»)
UserForm2.Label14.Caption = «Subtotal » & Format((tot / 1.16), «#,##0.00 «»U$S»»»)
UserForm2.Label15.Caption = «IVA » & Format(((tot / 1.16) * 0.16), «#,##0.00 «»U$S»»»)
stoold = a1.Cells(stodir, «G»)
a1.Cells(stodir, «G») = a1.Cells(stodir, «G») – can
End If
End Sub


Descarga el Aplicativo Como facturar con Excel en forma GRATIS

Descarga el fichero de Excel usado en este ejemplo y en el vídeo explicativo, el mismo es totalmente gratuito y libre su uso, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
no rating based on 0 votes