Para guru de Excel. Programar alertas de avisos

Hola, tengo un problema con una hoja de excel a la que le llevo horas dando vueltas y no he encontrado la solución, espero que algún experto de excel pueda ayudarme, la respuesta no es fácil creo.
Resulta que tengo una libro de excel que esta alojado en un pc de una nave de la fabrica, en esta hoja hay un campo PRODUCTO, STOCK y otro STOCK MÍNIMO, resulta que se modifican estos valores a través de la red desde un pc que esta en las oficinas de la fabrica. El problema es tendría que salir una pantalla de aviso en el Pc de la fabrica cada vez que el campo STOCK se pone por debajo del STOCK MÍNIMO.
No se como hacerlo, en el propio pc que se esta trabajando es sencillo, se programa un msbox con la condición de if Stock<Stok minimo...., pero para que la alerta sea visible el otro pc de la red no tengo ni idea.
Muchas gracias.
Saludos
Respuesta
1
No tan gurú, pero puedo proponer un par de ideas.
Al no saber, cómo es el proceso de actualización el la PC en planta, te sugiero colocarle un "temporizador" para que cada "n" minutos efectúe este control.
A su vez, este macro puede activarse manualmente o automáticamente cada vez que el archivo se abre.
Inserta un módulo nuevo en el editor de Visual Basic y copia estas lineas:
Sub CTRLSTCK()
If Stock<Stock minimo Then
MsgBox "STOCK INSUFICIENTE"
End If
Application.OnTime Now + TimeValue("00:10:00"), "CTRLSTCK"
End Sub
Si quieres que se active al abrir el libro deberías ingresar esté código en le panel de "ThisWorkbook" (o "EsteLibro", según la versión de VBA)
Private Sub Workbook_Open()
CTRLSTCK
End Sub
Como verás CTRLSTCK realiza el control que mencionas y muestra un mensaje. Luego se prepara para volver a ejecutarse cada 10 minutos.
Creo que podrás adpatarlo a ts necesidades.
---
La otra alternativa sería asociarlo a algún evento.
Ejemplos:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
CTRLSTCK
End Sub
ó en la hoja donde están los datos a controlar:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
CTRLSTCK
End Sub
En este caso deberás eliminar la linea de temporización: Application. OnTime Now + TimeValue("00:10:00"), "CTRLSTCK"
Así como el llamado a esta macro al abrir el archivo.
---
En particular, me gusta más la primera opción.
Espero que te haya servido.
Un gran abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas