Parpadeo de Celda


Este código de VBA es bastante interesante, ya que en varias ocasiones se necesita que excel emita un aviso, ya sea para recordar de la fecha de mantenimiento de cierta maquinaria, vencimiento de productos, nivel de stock o simplemente que ayude a recordar algo mediante un aviso, ya sea que aparezca un formulario y nos de el aviso o de otra forma.

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 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.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends