Si te estás iniciando en la operación de Excel o requieres afirmar conocimientos, recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz 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.
Volviendo al ejemplo macro de VBA planteado, en otras palabras, el archivo contiene una serie de productos con su fecha de producción y su fecha de vencimiento entre otros datos; al abrir el Libro de Excel, se corre una macro o procedimiento de VBA, que controla que la fecha de aviso sea igual a la fecha de producción más 30 días, luego va avisando cada 30 días hasta llegar a la fecha de vencimiento; el aviso sale en la columna A de la fila correspondiente esto se realiza por cada uno de los productos listados, la última celda con el aviso queda parpadeando.
Public fila As Integer
Sub Workbook_Open()
Sheets(«BD»).Range(«a6:a1048576»).Interior.ColorIndex = 0
On Error Resume Next
Application.ScreenUpdating = False
Dim fa, fv As Date
fila = 6
While Sheets(«BD»).Cells(fila, 3) <> Empty
fa = Sheets(«BD»).Cells(fila, 11) + 30
fv = Sheets(«BD»).Cells(fila, 12)
If Sheets(«BD»).Cells(fila, 2) <> Empty Then
fa = Sheets(«BD»).Cells(fila, 2) + 30
End If
If Date = fa And Date <= fv Then
Sheets(«BD»).Cells(fila, 1).Activate
Sheets(«BD»).Cells(fila, 1) = «ALERTA»
Sheets(«BD»).Cells(fila, 2) = Date
‘ejecuta la rutina
Alert
Else
Sheets(«BD»).Cells(fila, 1) = «»
End If
fila = fila + 1
Wend
Application.ScreenUpdating = False
End Sub
Código que se insertar en un módulo
Sub Alert()
‘Rutina ejecuta parpadeo
On Error Resume Next
If ActiveCell.Interior.ColorIndex = 1 Then ‘interior colornegro
ActiveCell.Interior.ColorIndex = 3 ‘interior color rojo
ActiveCell.Font.ColorIndex = 1 ‘fuente color negro
Else
ActiveCell.Interior.ColorIndex = 1 ‘interior color negro
ActiveCell.Font.ColorIndex = 2 ‘fuente color blanco
End If
‘controla el contenido de la celda . Si es de Alerta, ejecuta esta rutina de cambio de colores
If ActiveCell.Text = «ALERTA» Then
Application.OnTime Now + TimeSerial(0, 0, 1), «Alert»
Else
ActiveCell.Interior.ColorIndex = 0 ‘interior color fijo celeste
ActiveCell.Font.ColorIndex = 3 ‘fuente color fijo rojo
End If
fila = fila + 1
End Sub
.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends