Saltar al contenido

Enviar aviso al email desde excel


Recommended Posts

publicado

Buenos días;

Soy nuevo en este foro, estoy construyendo una hoja de excel para llevar el control de una flota de vehículos. Quería saber si alguien me podría ayudar en el siguiente tema: La hoja consta de una columna en la que se indican los días que faltan para pasar la inspección técnica a cada uno de los vehículos, la cual se va actualizando todos los días. Lo que quería hacer es, que cuando falten 10 días para llevar ese vehículo a la inspección técnica la propia hoja de excel me envié un aviso a una dirección de email.

Un saludo, espero vuestras respuestas!!

Gracias!!

publicado

Sube un archivo especificando la hoja y la columna de fecha, la hoja y la columna de dirección de correo, el texto del correo y el número de días de antelación.

publicado

Muchas gracias por contestar tan rápido!!

Te explico: La tabla es la que te envio en el archivo .rar. En la columna J (dias restantes) he aplicado una opción del formato condicional de excel para que me resalte la casilla cuando quedan menos de 10 días para el vencimiento de la inspección. Ahora lo que me gustaría es que en cada una de las casillas de esa columna (días restantes) cuando falten menos de 10 días a parte de resaltar la casilla me envíe un email a mi correo para recordarme dicha revisión.

Te adjunto el archivo y me vas diciendo con lo que sea.

Un saludo, espero tu respuesta. Muchas gracias!!!

ITV.rar

publicado

Debes igualar las hojas, es decir, la columna a controlar en todas ellas debe ser la columna I. Añade columnas vacías que faltan en alguna de las hojas. Ocúltalas si no quieres verlas en blanco.

Pon este código en un módulo y ejecuta la macro ControlITV.

Revisa tu dirección de correo.

Sub ControlITV()
Dim Hoja As Worksheet, Fila As Long
For Each Hoja In Sheets(Array("TRACTORES", "REMOLQUES", "VEHÍCULOS", "CISTERNA", "FUMIGADORAS"))
For Fila = 8 To Hoja.Range("A" & Rows.Count).End(xlUp).Row
If Hoja.Range("I" & Fila) < 10 Then EnviarCorreo Hoja, Fila
Next
Next
Set Aplicación = Nothing
End Sub

Private Sub EnviarCorreo(Hoja As Worksheet, Fila As Long)
Dim Aplicación As Object
Dim Correo As Object

Set Aplicación = CreateObject("Outlook.Application")
Aplicación.Session.Logon "outlook"
Set Correo = Aplicación.CreateItem(olMailItem)
With Correo
.To = "crapulilla@gmail.com"
.Subject = Hoja.Name & "-Faltan " & _
Hoja.Range("I" & Fila) & _
" para la ITV del vehículo " & Hoja.Range("D" & Fila)
.Body = ""
.Send

End With
Set Correo = Nothing
End Sub
[/CODE]

publicado

Muchas gracias!!

Tengo un problema: es que soy un poco nuevo en esto de las macros y no se muy bien como seguir. Te explico los pasos que yo he realizado: Abro el archivo excel que contiene las tablas, después en la pestaña programador elijo visual basic y dentro de este selecciono la opción insertar userform y dentro de este elijo la opción modulo. Ahí pego el código de programación que tu me has indicado anteriormente. Mi problema es que a partir de ahí ya no se como seguir...

Un saludo, espero tu respuesta. Muchas gracias por ayudarme!!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.