Como crear una alerta o un aviso

Me llamo ricardo cruz, yo estoy haciendo practicas profesionales, y necesito aplicar un sistema que sea sencillo y que alerte en una determinada fecha a los encargados de cada área en la empresa, ya que por lo común a ellos se les olvida por estar trabajando y no aplican lo que se les pide en la fecha que es necesario, por ejemplo, una persona ingresa a la empresa y esta al pasar un mes tiene que tomar un curso de manufactura, pero si al jefe se le olvida se le comienzan a juntar los cursos y después no puede darlos, para ellos quiero una forma de hacer esta alarma, lo malo dde esto es que no soy experto en informática, y solo necesito un sistema sencillo para resolver esta situación.

2 Respuestas

Respuesta
5
Vamos a ver la consulta la has expuesto en un foro de Excel, por ello te puedo ayudar en función de esta aplicación, necesitaría saber si es posible que cada día los operarios tengan abierto un libro de Excel (en particular el que muestre las alertas) y que lo tengan minimizado por ejemplo, y que estén trabajando en us temas, es más podríamos ponerlo para que arrancara al inicio cuando se inicia Windows pero aún así siempre tendrán que habilitar las macros y minimizarlo. Además tenemos otra cuestión y es que si el ordenador se encuentra en una Red local como clientes de un servidor tendríamos que poner el archivo en Inicio de All User para que sea quien sea el que inicie sesión en la Red se le arranque el archivo de Excel.
Aclarame estas cuestiones y podemos crear un userform en Visual Basic para que en función de la fecha de cursos y el trabajador en concreto le aparezca el aviso para que se inscriba en los cursos.
>Un saludo
>Julio
Ok
Te diré que me cuesta un poco de trabajo entender delo que hablas, sin embargo, creo que te puedo decir que, aquí en la org. Creo que es posible que se mantenga abierta o minimizada una hoja en exel, que como dices seria la que tenga la alerta.
Tenemos red de área local, pero no se realmente si estamos como clientes de un servidor.
No se realmente si esta información que de mando sea de gran ayuda, espero que así sea, y que puedas ayudarme, creo que es bueno preguntar. Gracias por tu apoyo.
Bien pues independiente de que tengáis un servidor cada usuario puede tener el archivo Excel abierto y minimizado cuando se produzca la alerta le aparecerá el mensaje, si te parece bien lo podemos hacer, yo te explico como y tu lo haces.
>Un saludo
>Julio
PD: No tardes tanto en contestarme o te cerraran la consulta, mientras existen consultas abiertas no pueden entrar más.
Ok, seria bueno
Espero, tu guía
Vamos a ver, abre un Libro nuevo de Excel, vamos a darle formato:
1º Hoja1 Col A (Cabecera con titulo por ejemplo: "USUARIOS") sin las comillas
2º Col B (Cabecera "FECHA") selecciona muchas filas y les das formato de fecha *14/03/2001
3º Col C (cabecera "CURSOS")
4º Col DE (Cabecera: "Fecha del Sistema:")
5º Col E en la celda E1 pones esta fórmula =HOY()
Rellenas los datos con el nombre de los usuarios la fecha que les toca el curso y el nombre del curso.
Ahora pulsas Alt+F11 y se abrirá el editor de VBA en la columna de la izquierda haz click con el derecho sobre el icono ThisWorkbook y eliges insertar módulo, y el la pantalla en blanco que te ha salido en la derecha pegas estaS macroS:
Sub Auto_Open()
Application.OnTime DateValue("18/07/2009"), "Aviso_Cursos"
'Aquí tendrás que poner tantas lineas de codigo como fechas tengas que avisar por ejemplo si el dia 20 de Agosoto tienes un curso programado para Juan Diaz Sanchez pues en tu Hoja en la Col A pones el nombre y apellidos  del usuario, en la Col B la fecha del curso en este caso 20/08/2009 y en la col C el nombre del curso por ejmplo Curso de Excel, como ese día tiene que salir el aviso pues lo indicas en esta macro con la linea:
Application.OnTime DateValue("20/08/2009"), "Guarda_Horas"
'Tantas lineas como fechas de cursos tengas que avisar,no hace falta repetir las lineas para la misma fecha, saldran todos los avisos seguidos esto indica que cuando sea esa fecha se ejecutará la macro siguiente que ahora te la explico.
End Sub
Sub Aviso_Cursos()
Range("B1").Select
fecha = Range("E1").Value
Do While ActiveCell.Value<>""
Do While ActiveCell.Value <> fecha
ActiveCell.Offset(1, 0).Select
Loop
If ActiveCell.Value = fecha Then
nombre = ActiveCell.Offset(0, -1).Value
curso = ActiveCell.Offset(0, 1).Value
MsgBox "" & nombre & " tiene un " & curso & " el dia " & fecha + 1 & """"
End If
End Sub
Esta macro cuando la anterior detecta por la fecha del sistema que es una fecha que coincide con su programación, ejecuta esta, se sitúa en la celda B1 (fecha) y va recorriendo las filas hasta el final y tantas filas coincidan con la fecha del sistema lanzará un aviso de quien es el que tiene un curso el día por :
Juan Diaz Sanchez tiene un Curso de Excel el día 21/08/2009 ( como verás te he puesto que el aviso se lo dé un día antes fecha + 1 si quieres que le avise antes pues tu la fecha de aviso la pones tantos días como margen quieras darle. Si el curso es el día 20 de Agosto y quieres avisarle con 2 días antes pues la fecha que tendrás que poner en la macro es 18 de Agosto y en la macro poner fecha + 2 para que el día 18 de Agosto le salga el aviso de que Juan... tiene un curso... el día 20/08/2009.
Espero que sepas hacerlo y te solucione tu problema. El archivo lo tienes que generar tú según tengas conocimiento de los cursos, y ponerlo en todos los ordenadores de las personas que tienen que hacer cursos, si quieres que se abra solo el archivo lo pones en la carpeta inicio y al arrancar windows se arrancará solo el archivo, si ese día hay avisos se mostrarán nada más arrancar. La molestia es que cada vez que se generen cursos nuevos hay que modificar el archivo, y los pasados ya puedes borrarlos sin dejar filas en blanco, puedes enviarles por correo el archivo nuevo a todos y que lo pongan en la carpeta Inicio si quieres a esa carpeta le creas un acceso directo en el escritorio y que lo metan en ella, le pones siempre el mismo nombre y cuando lo metan en la carpeta sustituirá al anterior.
>Un saludo
>Julio
PD: Si tienes algún problema me lo dices. Si te ha servido comenta, puntúa y finaliza la consulta.
Perdón me he dado cuenta que la segunda macro quedaría así:
Sub Aviso_Cursos()
Range("B1").Select
fecha = Range("E1").Value
Do While ActiveCell.Value <> ""
Do While ActiveCell.Value <> fecha
If ActiveCell.Value = "" Then Exit Sub
ActiveCell.Offset(1, 0).Select
Loop
If ActiveCell.Value = fecha Then
nombre = ActiveCell.Offset(0, -1).Value
curso = ActiveCell.Offset(0, 1).Value
MsgBox "" & nombre & " tiene un " & curso & " el dia " & fecha + 1 & "" _
, vbInformation, "AVISOS DE CURSOS"
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
>Saludos
Respuesta
1

He probado tu macro; pero no me lee los campos requeridos, este macro lo he adaptado a mis necesidades y funcionaciona correctamente, probablemnte este haciendo algo incorrecto me podrias ayudar; te paso mi codigo:

Sub Auto_Open()
Application.OnTime DateValue("18/08/2014"), "Aviso_Productos"
End Sub

Sub Aviso_Productos()
Range("B1").Select
fecha = Range("D1").Value
Do While ActiveCell.Value <> ""
Do While ActiveCell.Value <> Minimo
If ActiveCell.Value = "" Then Exit Sub
ActiveCell.Offset(1, 0).Select
Loop
If ActiveCell.Value = Minimo Then
Productos = ActiveCell.Offset(0, -1).Value
actual = ActiveCell.Offset(0, -1).Value
MsgBox "" & " El producto " & Productos & "tiene " & actual & " esta por debajo del minimo " & "" _
, vbInformation, "AVISOS DE PRODUCTOS"
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Como veras he modificado nombre por producto, fecha por minimo y curso por actual, en donde minimo y actual son numeros entero.

Y en la alerta solo me sale "El producto tiene esta por debajo del minimo".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas