Skip to content

Como CREAR una FACTURA CANCELAR FACTURA DEVOLVER al STOCK Productos NO Facturados EXCEL#12 #526

Factura en Excel - Devolver al stock productos no facturados

Devolver a Stock Productos no Facturados

En este post como facturar y trabajar descontando del stock o devolviendo productos al stock de art铆culos no facturados, sugiero previamente mirar los v铆deos anteriores de esta saga de v铆deos denominada como crear facturas con Excel paso a paso.

Aprende a manejar 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://youtu.be/NKIY1LbigNM

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.

Como Facturar con Excel y Descontar de Stock

En este post se muestra una mejora solicitada por un suscriptor de nuestro canal de You Tube el cual solicitaba que se pueda devolver al stock en caso de haber en un primer momento haber empezado una factura por error y no requerirse facturar dicho articulo, ya que al seleccionar la cantidad a facturar descuenta del stock y luego al no facturarlo, queda descontado del stock ni haber sido facturado.

Para evitar este problema que se puede suceder en stock con este caso, se procede a ejecutar una macro en el evento “query close” del formulario de Excel VBA, es decir antes de cerrar el formulario verificar谩 si existe alg煤n registro en el Listbox donde se muestran los art铆culos a facturar.

En caso que exista un articulo, proceder谩 a preguntar si se desea seguir realizando la factura o no, en caso que no deseemos hacer la factura autom谩ticamente vuelve la cantidad afectada, pero no facturada al stock.

Explicaci贸n del c贸digo para devolver art铆culos sin facturar al stock

Primero se recorren las filas del Listbox en caso de ser Empty la variable “regi” cierra el formulario, se usan los siguientes c贸digos:

For x = 0 To UserForm2.ListBox1.ListCount – 1
regi = regi + 1
Next x
If regi = Empty Then Exit Sub

En caso que la variable “regi” posea alg煤n valor, significa que existe un dato en el listbox que modific贸 el stock y no se factur贸 a煤n, no permite cerrar el formulario, sin que el operador del aplicativo tome una decisi贸n.

La macro pregunta si desea cancelar la factura que se estaba generando y devolver art铆culos al stock, en caso de respuesta negativa, no cierra el formulario permitiendo seguir realizando la factura, se usa el siguientes c贸digo:

respuesta = MsgBox(“驴Existe una factura en ejecuci贸n, desea cancelarla y volver los articulos al stock?”, vbCritical + vbYesNo, “https://macrosenexcel.com”)
If respuesta = 6 Then

Si la respuesta es positiva, es decir no se desea seguir realizando la factura se procede a devolver al stock las cantidades afectadas, pero a煤n no facturadas.

Por cada uno de los productos que encuentre en el Listbox determina cual es el c贸digo y la cantidad, con el objeto de buscarlo en la base de datos y sumar el importe que existe en la base de datos la cantidad que figura en el Listbox, que previamente fue descontado o afectado al seleccionar el registro y cantidad, pero al no se descont贸 ya que no se realiz贸 la factura:聽

Para recorrer el Listbox y determinar el c贸digo del producto y cantidad se usan los siguientes c贸digos:

For x = 0 To UserForm2.ListBox1.ListCount – 1
cod = UserForm2.ListBox1.List(fila, 0)
can = UserForm2.ListBox1.List(fila, 4)

Luego se procede a buscar el c贸digo en la base de datos con el siguiente c贸digo:

Set codigo = a2.Range(“B2:B” & uf).Find(cod, LookIn:=xlValues, LookAt:=xlWhole)

Una vez encontrado el c贸digo se procede聽 a sumar la cantidad de stock que figura en la base de datos y la cantidad que se afect贸 con las intensiones de facturar, pero no se termin贸 de realizar la factura, los c贸digos usados son:

If Not codigo Is Nothing Then
stodir = codigo.Row
stoold = a2.Cells(stodir, “G”)
a2.Cells(stodir, “G”) = stoold + can
End If
Next x

Descarga el Libro usado en el Ejemplo Como Facturar en Excel – Trabajar con Stock

Descarga el libro de Excel usado como ejemplo, desde el final del post, solicito aportar para sostener esta web, si est谩 dentro de tus posibilidades, desde ya muchas gracias.

C贸digo en evento QueryClose (Antes de Cerrar Formulario)

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
On Error Resume Next
For x = 0 To UserForm2.ListBox1.ListCount – 1
regi = regi + 1
Next x
If regi = Empty Then Exit Sub
respuesta = MsgBox(“驴Existe una factura en ejecuci贸n, desea cancelarla y volver los articulos al stock?”, vbCritical + vbYesNo, “https://macrosenexcel.com”)
If respuesta = 6 Then
Set a2 = Sheets(“Articulos”)
uf = a2.Range(“A” & Rows.Count).End(xlUp).Row

For x = 0 To UserForm2.ListBox1.ListCount – 1
cod = UserForm2.ListBox1.List(fila, 0)
can = UserForm2.ListBox1.List(fila, 4)

Set codigo = a2.Range(“B2:B” & uf).Find(cod, LookIn:=xlValues, LookAt:=xlWhole)
If Not codigo Is Nothing Then
stodir = codigo.Row
stoold = a2.Cells(stodir, “G”)
a2.Cells(stodir, “G”) = stoold + can
End If
Next x
End If
End Sub


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