Macro para envío de e-mail de aviso de apertura de libro

Para Dante Amor. Quisiera alguna macro que se ejecutase en la apertura de libro workbook_open y que enviase mensaje por e-mail de que ha sido aperturado el libro sin adjuntar ningún archivo, solo mensaje de apertura.

2 respuestas

Respuesta
1

Pon la macro en los eventos de thisworkbook, cambia "[email protected]" por el correo al que quieres enviar el aviso

Private Sub Workbook_Open()
'Por.Dante Amor
    Set dam = CreateObject("outlook.application").createitem(0)
    dam.To = "[email protected]"
    dam.Subject = "Ha sido aperturado el libro " & ThisWorkbook.Name
    dam.Body = "Fecha de apertura: " & Date & " Hora: " & Time
    dam.Send
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. Del lado derecho copia la macro

Saludos. Dante Amor

No me funciona la macro. Anteriormente me programastes otra que guardaba libro y enviaba aviso de cierra por e-mail que funcionaba bien y sin embargo en esta otra que es desde Thisworkbook me da error.¿Tiene algo que ver con qué el e-mail no vaya con archivo incluido "attachement" o no tiene que ver?. Mi versión es office-2007. Te envío a tu dirección un libro con mi versión 2007 y la macro grabada y verás que aparece mensaje de error.

No tiene nada que ver si no envías un archivo.

¿Qué mensaje de error te aparece?

¿Después de presionar el botón "depurar" dime cuál línea de la macro está en amarillo?

Revisé tu archivo y sí me funciona la macro, Te envié un archivo pero con extensión xlsm para que lo pruebes.

¡Gracias! Si conseguí ejecutarla aunque en una de las ocasiones me ponía que se había detenido outlook por uno de los archivos OLE. Creo que debo tener algún problemilla o bien con la compatibilidad excel y outlook 2007 o algún archivo defectuoso. Me faltaría probar con una versión de office más actual.

Respuesta
1

Te dejo el código que deberías incluir al evento Open

Private Sub Workbook_Open()
enviar_Mail
End Sub

y el procedimiento enviar_Mail, sería 

Sub enviar_Mail()
' Is working in Office 2000-2007
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
strbody = "Hola" & vbNewLine & vbNewLine & _
"Línea 1" & vbNewLine & _
"Línea 2" & vbNewLine & _
"Línea 3" & vbNewLine & _
"Línea 4"
On Error Resume Next
With OutMail
.To = "[email protected]"
.CC = ""
.BCC = ""
.Subject = "Título del mail"
.Body = strbody
.Send             'o .Display si la idea es que lo muestre sin enviar
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas