En este ejemplo de macro de excel aparece un aviso en celda mediante un parpadeo de color rojo en la celda, está muy relacionado con el post donde excel avisa en forma automática en la celda por aproximación a la fecha de realización de cierto evento, también guarda estrecha relación con el post de formulario de aviso, donde en vez de avisar en la celda, se emite un formulario de aviso que se cierra en forma automática transcurridos dos segundos.
El procedimiento de VBA, específicamente controla que
la celda tenga un cierto valor si el valor es menor a uno dado se ejecuta la macro y empieza a
parpadear la celda a modo de aviso; caso contrario no hace nada, tiene la función de alarma, se puede usar
en planillas donde se tiene el stock de productos y se necesita que se avise
cuando se llega a un stock crítico, el código se debe insertar en una hoja
worksheet y en un módulo el resto del procedimiento.
En el link del final podrás descargar el ejemplo y adaptarlo a lo que requieras, no tiene ningún tipo de restricción el código presentado en este ejemplo.
Código que se inserta en la hoja donde se quiere que se realice el evento
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
‘controla el cambio en la celda B2
If Not Intersect(Target, Range(«a:a»)) Is Nothing Then
‘si el valor ingresado es menor a 10 coloca en B4 el texto de Alerta
If Range(«B2») < 10 Then
Range(«B4») = «ALERTA: STOCK BAJO»
Else
Range(«B4») = «»
End If
‘ejecuta la rutina de parpadeo
ChangeColorA1
End If
End Sub
Código que se ingresa en un módulo
Sub ChangeColorA1()
On Error Resume Next
If Range(«B4»).Interior.ColorIndex = 1 Then ‘interior colornegro
Range(«B4:D4»).Interior.ColorIndex = 3 ‘interior color rojo
Range(«B4:D4»).Font.ColorIndex = 1 ‘fuente colornegra
Else
Range(«B4:D4»).Interior.ColorIndex = 1 ‘interior color negro
Range(«B4:D4»).Font.ColorIndex = 2 ‘fuente color rojo
End If
‘controla el contenido de la celda . Si es de Alerta, ejecuta esta rutina de cambio de colores
If Range(«B4»).Text = «ALERTA: STOCK BAJO» Then
Application.OnTime Now + TimeSerial(0, 0, 1), «ChangeColorA1»
Else
Range(«B4:D4»).Interior.ColorIndex = 0 ‘interior color fijo celeste
Range(«B4:D4»).Font.ColorIndex = 3 ‘fuente color fijo rojo
End If
End Sub
.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends