Macro para mostrar Mgstxt si se cumple una condicional

Pero me han comentado que se puede crear una macro para automatizar una actividad de chequeo rutinaria.

Tengo un archivo con mil insumos y deseo comparar el valor de la celda de la columna "Stock" con mi columna de "Recompra", es decir, si el valor cambia de alguna celda de la columna "StocK" y éste sea menor a su celda correspondiente en la columna "Recompra", me mande un mensaje de alerta que diga, "Insumo debe resurtirse a la brevedad".

INSUMO STOCK RECOMPRA

A                      10                 25            Mostrar mensaje "Resurtir a la Brevedad" 

B                      80                 50            No mostrar mensaje

C                      25                 10            No mostrar mensaje       

D                        8                 20            Mostrar mensaje "Resurtir a la Brevedad"

ETC

¿Es esto posible?, ojala y me pudieran ayudar

1 respuesta

Respuesta
1

[Hola 

En el evento change de tu hoja pon esta macro 

Private Sub Worksheet_Change(ByVal Target As Range)
'
    col = "B:B" ' columna stock
    col2 = "C"  ' columna recompra
    '
    If Not Intersect(Target, Range(col)) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        '
        If Target < Cells(Target.Row, col2) Then
            MsgBox "Resurtir a la Brevedad"
            Exit Sub
        End If
    End If
End Sub

valora la respuesta para finalizar saludos!

Adriel, Muchas gracias por la pronta y rápida respuesta

Solo una pregunta más por favor, si los valores de la columna STOCK cambian en base a una fórmula, ¿esta macro se aplica automáticamente?, es decir, si el valor de la columna stock esta dado por la fórmula:

STOCK= Stock inicial - Consumo = X valor

Cuando se aplica la fórmula y va decreciendo, ¿al cumplirse la condicional de la Stock < recompra, aparecerá el mensaje de resurtimiento?, es que lo hice y al parecer no lo hace, tal vez yo hice algo mal, pero más vale preguntar.

En ese caso la macro no va funcionar, otra salida sería calcular el stock pero con la macro .

Envíame tu archivo [email protected] o muestra una imagen de la hoja y que note las columnas

Estimado adriel.

Ya te he mando el archivo al correo que me hiciste favor de dar.

De antemano, agradezco el apoyo!!!

Te paso la macro actualizada

Private Sub Worksheet_Change(ByVal Target As Range)
'Por Adriel Ortiz
'//TodoExpertos
'
    '
    If Not Intersect(Target, Range("I:T")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        '
        TOTALSTOCK = Cells(Target.Row, "V") - Cells(Target.Row, "I") - Cells(Target.Row, "J") - Cells(Target.Row, "K") - _
        Cells(Target.Row, "L") - Cells(Target.Row, "M") - Cells(Target.Row, "N") - Cells(Target.Row, "O") - Cells(Target.Row, "P") - _
        Cells(Target.Row, "R") - Cells(Target.Row, "S") - Cells(Target.Row, "T")
        '
        Cells(Target.Row, "W") = TOTALSTOCK
        If TOTALSTOCK <= Cells(Target.Row, "Y") Then
            MsgBox "Resurtir a la Brevedad"
            Cells(Target.Row, "W").Interior.ColorIndex = 3
            Exit Sub
        Else
             Cells(Target.Row, "W").Interior.ColorIndex = 6
        End If
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas