Como agregar el cuerpo del mail en la macro desde excel

Tengo la siguiente macro que envía la hoja como adjunto y coloco el asunto al mail, lo que deseo agregar es que en el cuerpo aparezca la información de una celda de la hoja que envió. Leí que con el método "ActiveWorkbook.SendMail" no se puede incluir el cuerpo del mail, en ese caso que método debería usar no necesito que el libro se guarde en la pc desde la que se envía el mail.

Sub mailfinal()
MsgBox ("NO ENVIO PLANILLA DE OPERADORES")
MsgBox ("NO OLVIDE ABRIR LA CUENTA DE MAIL PARA ENVIAR LA PLANILLA")
Application.ScreenUpdating = False
Application.DisplayAlerts = False

ActiveCell.Select
Sheets("b").Select
Range("E2").Select
Selection.copy
Range("W1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Dim Names()
Names = Array("[email protected]", "[email protected]")

ActiveWorkbook.SendMail _
Recipients:=Names(), _
Subject:="Parte de " & " " & Range("J6").Value & " " & Range("c6").Value & " " & Range("E5").Value & " kg "

Sheets("Bielo").Select
'ActiveWindow.SelectedSheets.Visible = False
Application.EnableEvents = True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

2 respuestas

Respuesta
1

[Hola

Necesariamente tienes que usar el objeto Outook, dale una leída a este artículo:

https://abrahamexcel.blogspot.com/2018/02/microsoft-outlook-desde-excel-vba.html

Abraham Valencia

Respuesta
1

Prueba con la siguiente Macro y ajustala a tus necesidades:

Sub MAIL_rango()
' X Hilario López Rivera
' Verifica si se ejecuta o no el macro por si está vacio, esto lo puedes quitar si no lo necesitas
Sheets("Tu Hoja").Select
If Range("A3").Value = "" Then
MsgBox ("No hay datos para procesar o están incompletos "), vbOKOnly, "PW CIERRES HL"
Else
' Copia los datos que vas a pegar en el cuerpo del Email
Sheets("Tu Hoja").Select
Range("A1:E2").Select  ' Amplia o reduce según tus criterios
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
' Crear mail.
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.createitem(0)
On Error Resume Next
With OutMail
.To = "[email protected]"
.CC = "[email protected];[email protected]"
.Subject = Range("L3")  'Asunto del email segun celda
.Body = "Agradeciendo como siempre su amable ayuda, Saludos."  'Parte del cuerpo
.Display
Application.SendKeys "{NUMLOCK}"
Application.SendKeys "^v{END}"
.Display
.Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End If
Range("A1").Select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas