Conectar Excel con Outlook cuando tenga un texto en una celda
Que me gustaría puedan apoyarme, he creado una fórmula Si, en una de mis celdas, que cuando pasa una fecha POR, este me sale un texto en la celda que dice REVISAR, lo que me gustaría es que cuando tenga este mensaje en la celda de excel, pueda recibir un correo electrónico en mi bandeja de email
1 Respuesta
Para enviar un correo en automático se tiene que hacer con una macro.
Envíame tu archivo para adaptar la macro.
Mi correo [email protected]
En el asunto del correo escribe tu nombre de usuario “David Lezcano” y el título de esta pregunta.
H o l a:
También me tienes que decir lo siguiente:
El correo destinatario.
Qué pongo en el asunto.
Qué pongo en el cuerpo del correo.
Sal u dos
ok, el correo, todavía no esta definido, podría poner uno de prueba, como el que te envié, el asunto, podría variar, por ejemplo, "alerta de vencimiento" + el texto de una celda.
gracias,
Alerta de vencimiento" + el texto de una celda,
De cuál celda, esos datos se tienen que especificar para armar la macro, te voy a poner unos ejemplos, pero deberás cambiarlos en la macro por los datos reales.
Private Sub Worksheet_Calculate() 'Por.Dante Amor For i = 3 To Range("I" & Rows.Count).End(xlUp).Row If Cells(i, "I") = "REVISAR" Then Set dam = CreateObject("outlook.application").createitem(0) dam.To = "[email protected]" dam.Subject = "alerta de vencimiento " & Range("H" & i) dam.Display 'dam.Send End If Next End Sub
En la macro va esta línea comentada.
'dam. Send
Cuando ya la tengas lista para usar, entonces quita el apostrofe de la línea, te debe quedar así:
Dam. Send
Listo, cada que cambies una fecha y se actualice la fórmula de la columna "I" y tenga la palabra "revisar" se enviará un correo.
Hola Amigo Dante, tengo una consulta mas referente a la macro, el tema esta en que cuando tengo el archivo abierto, y si abro otro excel, este empieza a emitir correos nuevamente, así sucesivamente con cualquier excel, que pueda abrir, ,ahora como debería de cambiar la macro, para que solo me emita la primera vez que abra el documento, o si tengo el documento abierto varios días sin cerrar, este solo me mande el correo una vez por día, otra cosa, y espero que no sea mucho pedir, pero hay forma de ponerle al correo la parte de seguimiento, categoría, alarma, importancia alta dependiendo del dato recibido en la celda,
quiero agradecerte de antemano por tu ayuda
Otra cosa amigo que he encontrado, es que si edito cualquier otra celda ajena a las involucradas en la macro, este nuevamente envía correos,
como se podría evitar eso
Te parece mejor si ponemos un botón y cuando tu quieras, presiones el botón, ¿se empiece la revisión y se envíen los correos?
Para esto nuevo que pides:
"al correo la parte de seguimiento, categoría, alarma, importancia alta dependiendo del dato recibido en la celda"
Tienes que decirme exactamente de cuál columna tomo esa información.
Valora esta respuesta y crea una nueva en el tema de excel.
Lo del botón seria una opción, pero eso dependería de que uno se acuerde de presionarlo todos los días, yo quería dejarlo el archivo abierto en una maquina todo el día, durante tiempo establecido, no estoy seguro si en la fórmula =HOY(), que esta en la celda AA2, este cambia automáticamente, entonces que ejecute la macro, cuando cambia la fecha ahí, o que se realice cada 24 horas, o solo cuando se abra el archivo
La otra consulta he creado una nueva consulta
H o l a:
Las ejecuciones en automático ocurren cuando se activa un evento en el libro o en la hoja.
Si no ocurre ningún evento, entonces no se puede ejecutar nada.
La otra opción es que se ponga una macro que se ejecute cada 24 horas, pero esto significa que tienes una macro latente y no podrás ejecutar otra macro. Y además la macro ocasionará que tu archivo de excel sea más lento.
Lo que si podemos hacer es que la macro se ejecute cada vez que abres el archivo.
Entonces, quita la macro que te envíe y pon la siguiente macro en los eventos de thisworkbook:
Private Sub Workbook_Open() 'Por.Dante Amor Set h = Sheets("Seguimiento") For i = 3 To h.Range("I" & Rows.Count).End(xlUp).Row If h.Cells(i, "I") = "REVISAR" Then Set dam = CreateObject("outlook.application").createitem(0) dam.To = "[email protected]" dam.Subject = "alerta de vencimiento " & h.Range("H" & i) dam.Display dam.Send End If Next End Sub
Instrucciones para poner la macro en los eventos ThisWorkbook
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
- Del lado derecho copia la macro
pero esa ultima macro, no logro entenderla bien, por otro lado, no hay forma que solo valide cuando hay un cambio en la columna H, es decir cuando solo aparezca el "REVISAR" porque de verdad, que cada letra que pongo o borro en otra celda, me llena de mensajes
En la columna H tienes una fórmula, la macro se activa cuando se afecta algo en la hoja y se recalcula la hoja, en ese momento se hace la revisión.
Es la única forma.
Utiliza la otra opción que es cuando se abre el libro, entonces que se ejecute la macro.
Ya te envié el archivo con la macro para ejecutarse cada que abres el libro.
R ecuerda valorar la respuesta.
H o l a:
Ya revisé tu archivo, si modificas la columna H y en la columna I dice "revisar", entonces se enviará un correo. Pero solamente de la fila que modificaste la fecha, es decir, si modificaste la celda H5, y en la celda I5 el resultados es "revisar" entonces se enviará el correo. ¿De acuerdo?
Esta es la macro:
Private Sub Worksheet_Change(ByVal Target As Range) 'Por.Dante Amor If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Range("H:H")) Is Nothing Then If Cells(Target.Row, "I") = "REVISAR" Then Set dam = CreateObject("outlook.application").createitem(0) dam.To = "[email protected]" dam.Subject = "alerta de vencimiento " & Cells(Target.Row, "I") dam.Display dam.Send End If End If End Sub
- Compartir respuesta