Envio email cuando en Excel se cumple una condicion

4 envíos / 0 nuevos
Último envío
EZ
Imagen de EZ
Offline
última acción: Hace 9 años 6 meses
alta: 25/06/2013 - 19:44
Puntos: 31
Envio email cuando en Excel se cumple una condicion

Hola,

Necesito enviar un email (o sms) de forma automática cuando en un archivo de excel se cumpla una condición.

Tengo una hoja de excel conectada a una web y por eso están continuamente modificandose los valores. Lo que quiero es, p.ej. que cuando la celda A1 de la Hoja1 tenga valor 1 automaticamente me envie un email diciendome la celda A1 ha alcanzado el valor 1"

Espero que pueda hacerse. Muchas gracias por anticipado.

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 hora 40 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Envio email cuando en Excel se cumple una condicion

Hola:

En primer lugar Excel se calcula sólo si el libro está abierto, así que para que compruebe esta condición deberías mantener el archivo abierto. (esto parece una tontería, pero hay que decirlo, como en las instrucciones de los electrodomésticos que pone "compruebe que el aparato está conectado a la red eléctrica y que haya corriente")

Cuando hablas de que la hoja está conectada a una web, entiendo que es mediante una consulta de datos externos y que la tienes configurada para que se actualice cada x minutos.

 

El problema es que no hay un evento que incorpore Excel que se produzca tras la actualización, en el que realizar esa comprobación que quieres hacer para ver si cierta celda sobrepasa el umbral.

-Alternativa 1: si hay algo que se calcula en la hoja a partir de los datos de la consulta (supongo que tendrás una celda que comprueba cosas y devuelve ese 1) puedes utilizar el evento Calcular de la hoja para que se ejecuta cada vez que la hoja se calcula

Worksheet_Calculate

este evento está en el código de la hoja

 

-Alternativa 2: crear una clase nueva para la consulta con el evento afterupdate. Aquí explican cómo http://support.microsoft.com/kb/213187/en-us

 

Una vez que se cumpla la condición, para el envío de mensajes, se puede hacer de varias maneras, depende del gestor de correo que tengas instalado o de si lo quieres hacer utilizando un correo web (como en este caso http://www.necesitomas.com/automatizar-pedido-outlook-web-access-owa)

 

Por cierto, pon un indicador en algún sitio diciendo que has enviado el mensaje, para que sólo envíe el mensaje la primera vez que se cumpla la condición y no empiece a enviar el mismo mensaje cada minuto.

 

 

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Se que es un hilo muy antiguo

Se que es un hilo muy antiguo, pero no encuentro por ningún foro la solución a poner una marca que indique que se ha mandado ya un email, para evitar enviar de nuevo el correo.

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Puedes utilizar simplemente

Puedes utilizar simplemente una celda. Si hay cierto valor en esa celda (por ejemplo SI), es que ya se ha enviado el email.

Cuando se modifique cualquier otro lugar que haga que se deba volver a enviar el email, tendrías que tener un código que vuelva a poner en la celda que decía el valor que indique que no se ha enviado (por ejemplo NO)

 

Un saludo