Mostrar Mgstxt si se cumple que un valor en fila X se a igual o menor al valor de fila Y (X1<=Y1)

Tengo una base de datos donde en la columna T tengo los consumos de insumos y en la columna w los stocks de cada uno, deseo saber si pueden ayudarme con una fórmula o macro que permita mostrar un cuadro de texto que diga "El insumo debe resurtirse a la Brevedad" si se cumple la condición.

Ejemplo

Columna A Columna T Columna W

Insumos Stock actual Stock Minimo

Pasta                     2                           10         t <= w Mostrar mensaje (En este caso SI aplica)

Harina                    5                             5         t <= w Mostrar mensaje (En este caso SI aplica)

Verdura                 10                           9          t <= w Mostrar mensaje (En este caso NO aplica)

Cajon                      3                            2         t <= w Mostrar mensaje (En este caso NO aplica)

He intentado con la herramienta de validación de datos usando la condicional, pero no me aparece el mensaje de texto.

1 respuesta

Respuesta

Suponiendo que los datos están a partir de la fila 2, entonces coloca en la celda Z2

=SI(T2>W2;"";El insumo debe resurtirse a la brevedad")

Salu2

Estimado Gustavo Gracias por tu pronta respuesta.

Tal vez no me explique bien, esta conduicional que tu mandas, ya le he utilizado y lo que deseo es que aparezca en la pantalla un cuadro emergente que diga la leyenda "El insumo debe resurtirse a la Brevedad"

Gracias

Ok, ¿y si tienes varios insumos que debería hacer?

¿Esto cuándo debería hacerlo? Al abrir el archivo, al introducir un valor, etc...

Gracias por la pronta respuesta y gracias por la orientación hacia el objetivo.

Este cuadro emergente debería aparecer al momento de que el valor de una celda en la columna "T" cambie su valor y éste sea menor al valor de la celda en la columna W de la misma fila.

y como bien mencionas, como cada insumo se mete de forma indiviual, lo ideal es que apareciera el cuadro cada vez que se cambie el valor descrito anteriormente, con un posible boton de cierre que diga "OK" por ejemplo.

Ok, si los valores de la columna T son los que ingresas a mano (y es el momento donde quieres verificar eso), entonces en el evento Change de la hoja coloca algo parecido a lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rn As Range
If Target.Columns.Count > 1 Then Exit Sub       'si cambió varias columnas a la vez SALE
If Target.Column <> 20 Then Exit Sub            'si cambió una columna que no es la "T", SALE
'Si llega acá es porque está en la columna T
For Each rn In Target
    If rn.Value <= rn.Offset(0, 3).Value Then   'valido las condiciones para el msg
        MsgBox "El insumo " & rn.Offset(0, -19) & " debe resurtirse a la brevedad", vbOKOnly + vbInformation, "Información"
    End If
Next rn
Set rn = Nothing
End Sub

Salu2

Gustavo.

Gracias por la excelente macro será de mucha utilidad, una pregunta más si me lo permites, por ejemplo  si en la columna "T" deseo colocar una formula para que el dato provenga de operación y no de una captura directa, tu macro servirá?

Es decir,

Columna "U" + Columna "Y" - Columna "V" = Valor que cambia en columna "T"

De antemano agradezco tu tiempo y la atención.

Si la columna T pasa a tener una fórmula en lugar del dato directo, entonces esta macro no te servirá, para eso tenés 2 opciones:

1) Cambiar la instrucción para que en lugar de revisar la columna 20 (columna T), revise la columna del dato que ingresan a mano

2) En lugar de usar el evento Change, usar otro evento (pero para esto ya tendrás que cambiar la macro, porque hoy justamente lo que verificamos es que cambie la columna T.

El problema es que si tenés una fórmula que cambia de valor, no está cambiando la columna T (ya que la fórmula es la misma), por eso dentro de lo posible creo que debería intentar usar la alternativa 1)

Salu2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas