Macro de Aviso

Que tal Fejoal, tengo una macro que me manda un aviso después de que se cumple cierta condición, el problema es que cuando capturo la siguiente información, la macro sigue mandando el mensaje, ¿cómo le puedo hacer para que la macro mande el mensaje solamente una vez y no vuelva a aparecer, aunque siga la condición?, la macro va así
If Sheets("Control de Herramentales").Range("M33").Value = 5 Then
Valida = MsgBox("ESTE HERRAMENTAL YA LLEVA 15 CICLOS CON ESTA CARA" & Chr(10) & "" & Chr(10) & "HAY QUE VOLTEAR EL HERRAMENTAL N° 5", vbCritical, "¡¡¡ AVISO DE HERRAMENTAL !!!")
Sheets("Control de Herramentales").Range("E33").Value = Date
De antemano, muchas gracias.

1 Respuesta

Respuesta
1
Bastaría que tengas y uses en el condicional una variable booleana (True/False) para controlar la aparición del mensaje.
Si bien no mencionaste si es una macro que se ejecuta ante un evento o es disparada manualmente, la rutina debería inicializase con tal variable en estado TRUE
Tal procedimiento sería:
vControl = True
If vControl and Sheets("Control de Herramentales").Range("M33").Value = 5 Then
Valida = MsgBox("ESTE HERRAMENTAL YA LLEVA 15 CICLOS CON ESTA CARA" & Chr(10) & "" & Chr(10) & "HAY QUE VOLTEAR EL HERRAMENTAL N° 5", vbCritical, "¡¡¡ AVISO DE HERRAMENTAL !!!")
Sheets("Control de Herramentales").Range("E33").Value = Date
vControl = False
...
Como verás en la condición se evalúa si la variable está en VERDADERO. En ese caso, cumplida la otra condición mostrará el mensaje y luego dejará la variable en False.
Por lo tanto, la próxima vez esta condición no se cumplirá y el mensaje no será mostrado.
Esto, creo, es lo que buscabas.
Un abrazo!
Fernando
Muchas gracias mi Fer, como siempre, el mejor experto tanto en tiempo de respuesta, como en la solución acertada. Recibe saludos de Querétaro, México.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas