Mostrando las entradas con la etiqueta Excel y Outlook. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Excel y Outlook. Mostrar todas las entradas

domingo, 3 de marzo de 2024

¿Es verdad que ya no podremos usar macros en Outlook?

¿Es verdad que ya no podremos usar macros en Outlook?

¡Saludos!

Abraham Valencia
Lima, Perú

sábado, 30 de junio de 2018

Microsoft Outlook desde Excel (III): Alertas a través del correo electrónico

Como ya he comentado en otros artículos, en los foros/comunidades de Excel entre las preguntas más frecuentes están las relacionadas a cómo enviar mensajes de correo electrónico a través de Macros de Excel. Muchas de dichas preguntas incluso tienen carácter más puntual y no es raro que las personas pregunten por “alertas” automáticas cuando, por ejemplo, se cumplen ciertas fechas que se consideran límites. En esta ocasión vamos a dar algunos consejos para esos casos y usando Microsoft Outlook.

Primero, por si acaso, recordemos como enviar mensajes a través de Outlook: Enlace_1, luego también recordemos como enviar mensajes masivos: Enlace_2, algo que nos será útil en esta ocasión. Ahora vamos a suponer que tenemos los siguientes datos:

Lo que vamos a hacer que la macro se active a través de evento “Open” del libro, por lo que pondremos lo siguiente en el módulo del libro (que lleva por defecto el nombre “ThisWorkBook”):

Private Sub Workbook_Open() 
Call EnviarAlertas
End Sub  
De ese modo la macro se activará automáticamente al abrir el archivo. Luego, a través de un bucle (For – Next) recorremos la columna de la fecha de vencimiento y si es inferior al día en que se abrió el archivo, entonces se enviará un mensaje de correo a la persona recordándole su deuda. Incluiremos una copia para uno mismo. En la columna “E” (“Notificado”) agregaremos un “Sí” después de que se envíe el mensaje, de ese modo al volver a abrir nuevamente el archivo, a través de un “If” se verificará dicha columna y de haber dicha palabra (ojo, cualquiera en realidad en éste caso), a esa persona no se le volverá a enviar el mensaje.

Entonces, dicho todo eso, nuestra macro debería quedar así:

Sub EnviarAlertas() 
Dim OutlookApp As Outlook.Application 
Dim objItem As MailItem 
Dim UltimaFila As Long, x As Long 
Dim FechaV As Date 

Set OutlookApp = CreateObject("Outlook.Application") 
Let UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row 

For x = 2 To UltimaFila
     Let FechaV = Range("D" & x).Value
     If FechaV < Date And Range("E" & x).Value = "" Then
         Set objItem = OutlookApp.CreateItem(olMailItem)
         With objItem
             .To = Range("B" & x).Value
             .cc = "tucorreo@correo.com"
             .Subject = "Deuda vencida"
             .Body = "Estimado/a señor/a " & Range("A" & x) & " su cuota de " & FormatCurrency(Range("C" & x).Value) & " venció el día " & Range("D" & x).Value
             .Send
         End With
         Set objItem = Nothing
         Range("E" & x).Value = "Sí"
     End If
Next x
Set OutlookApp = Nothing
MsgBox "Cuentas revisadas"
End Sub  

No olvides activar la referencia a "Microsoft Outlook 15.0 Object Library" en el editor de VBA (en donde el 15.0 puede variar dependiendo de tu versión de Excel).

Y listo, eso es todo en esta ocasión, solo adáptalo a tus necesidades. Hasta la próxima.

Abraham Valencia