Cuando se tienen muchos datos en una tabla, puede llegar a ser un problema el encontrar los registros que ya tienen una fecha de vencimiento, una alerta de vencimiento puede ser la solución, muy útil para Cuentas por Cobrar y Cuentas por Pagar, básicamente se debe mostrar un mensaje al abrir el libro, en ese mensaje se debe poder visualizar lo que ya tiene vencimiento.
Alerta con Formulas Excel
De inicio puede ser una solución el uso de formulas, la idea es que se pueda mostrar un texto cuando se cumple una condición de vencimiento por la fecha.
Formula Vencimiento de Facturas
Partiremos de la idea que en la tabla de datos también se cuenta con la cantidad de dias de crédito, de tal forma que a la fecha podamos sumar esos dias para obtener la fecha de vencimiento.
=SI(E2<=HOY()+2,"Vencimiento","")
Con la formula anterior obtenemos el texto “Vencimiento”, esto cuando faltan dos dias para llegar a la fecha en que la factura vence, para cambiar la cantidad de dias con anticipación que se debe mostrar el mensaje solo debes cambiar el “+2” por la cantidad de dias que desees.
Alerta con Macros
Tomando como base la formula anterior, podemos crear una macro que recorra la tabla de datos y comprobar en cada registro la columna donde aparece “Vencimiento” en los casos que aplica, de tal forma que al finalizar el recorrido se muestre un mensaje con la lista de facturas que están en vencimiento.
Codigo VBA Alerta de Facturas Vencidas
El siguiente código es muy simple pero de grana ayuda para no dejar pasar esas facturas que ya tienes que pagar, lo que hace esta macro es poner un fondo rojo a todas las facturas con vencimiento y ademas te da un mensaje con la lista de todas esas facturas.
Sub AlertaVencimiento()
Dim r As Range
Dim mensaje As String
If wsFacturas.Range("A2") <> "" Then
For Each r In wsFacturas.Range("A2", wsFacturas.Range("A1").End(xlDown))
If r.Offset(0, 6) = "Vencimiento" Then
r.Offset(0, 6).Interior.Color = rgbRed
mensaje = mensaje & r & ", Vencimiento " & r.Offset(0, 1) & ", " & FormatNumber(r.Offset(0, 3)) & vbNewLine
Else
r.Offset(0, 6).Interior.Pattern = xlNone
End If
Next r
If mensaje <> "" Then
MsgBox mensaje, vbCritical, "Vencimiento de Facturas"
End If
End If
End Sub
Explicacion Macro Vencimiento de Facturas
La macro inicia el recorrido de la tabla tomando como base la columna A, el recorrido se inicia solo si hay por lo menos un registro If wsFacturas.Range("A2") <> "" Then
El recorrido se hace desde A2 hasta la ultima fila que tenga algún dato.
For Each r In wsFacturas.Range("A2", wsFacturas.Range("A1").End(xlDown))
Si en la columna G esta el texto “Vencimiento” en el registro en turno, el fondo de esa celda se pone rojo y se agrega un linea a la variable “mensaje”, esa nueva linea tiene el numero de factura, fecha de vencimiento e importe.
If r.Offset(0, 6) = "Vencimiento" Then
r.Offset(0, 6).Interior.Color = rgbRed
mensaje = mensaje & r & ", Vencimiento " & r.Offset(0, 1) & ", " & FormatNumber(r.Offset(0, 3)) & vbNewLine
Si no esta vencida, entonces le quita el color de fondo a la celda.
r.Offset(0, 6).Interior.Pattern = xlNone
Una vez terminado el recorrido, si la variable mensaje tiene por lo menos una linea, se mostrara ese mensaje.
If mensaje <> "" Then
MsgBox mensaje, vbCritical, "Vencimiento de Facturas"
End If
Hacer que el proceso sea ejecutado justo despues de abrir el libro Excel.
Es importante que esta alerta se ejecute cuando se abra el libro, esto con el fin de asegurarnos de poder ver la informacion actualizada cada día.
Para esto simplemente tenemos que agregar el siguiente código en “ThisWorkBook”, este objeto lo podemos ubicar desde el explorador de proyecto de VBA.
Private Sub Workbook_Open()
Call AlertaVencimiento
End Sub
Espero que este ejercicio te sea de mucha ayuda y puedas adaptarlo a tus proyectos.
Deja tus comentarios.