Excel - Enviar Correo desde Excel.

 
Vista:

Enviar Correo desde Excel.

Publicado por Roberto Mendoza (7 intervenciones) el 05/06/2015 00:01:51
Hola buena tarde me pueden apoyar por favor.

necesito enviar un correo desde excel, el destinatario y la copia son variables asi mismo el titulo. pues como envio estadisticas a distintas personas pues cada una es diferente.

tambien neceisto adjuntar un archivo q esta guardado en mi escritorio el cual puede tener el mismo nombre siempre.

anexo el codigo q estoy usando por ahora por mas q lo ejecuto no me llega el correo.

y quiza me pueden apoyar a crear un codigo donde se le pueda dar formato al cuerpo del correo pues mejoraria mucho la presentacion de mis envios.

muchas gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub OutlookMailExcelAdjunto()
    Dim OutApp As Object
Dim OutMail As Object
 
 
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.logon
Set OutMail = OutApp.CreateItem(0)
 
'aqui es donde guardas el libro:
ActiveWorkbook.Save
 
'y acá comienza el "proceso de envío"
'en una variable guardo el contenido de A1
On Error Resume Next
With OutMail
.To = Range("o2").Value
.CC = Range("o2").Value
.BCC = Range("o2").Value
.Subject = Range("b9").Value
.Body = Range("b8").Value2
.Attachments.Add Range("e4")
.Send
End With
On Error GoTo 0
 
Set OutMail = Nothing
Set OutApp = Nothing
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Enviar Correo desde Excel.

Publicado por Martha (330 intervenciones) el 06/06/2015 11:18:14
Saludos Roberto,

Mas o menos yo hago lo mismo que tú, y el resultado es satisfactorio.

Previamente declaro todas las variables (como no tengo ni idea de programar, siempre puedo sacar una MsgBox con una variable y ver si la está tomando o no).

Mi codigo es más o menos este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'Declaración de variables
    Dim OutApp As Object, fso As Object
    Dim OutMail As Object
    Dim Destinatario1 As String, Destinatario2 As String, Destinatario3 As String
    Dim Archivo As Object, RutaArchivo As String
    Dim variable As String
    Dim Mensaje As VbMsgBoxResult
 
    On Error Resume Next
 
    Destinatario1 = Sheets("Hoja1").Range("v2").Value
    Destinatario2 = Sheets("Hoja1").Range("x2").Value
    Destinatario3 = Sheets("Hoja1").Range("y2").Value
    variable = Sheets("Hoja1").Range("A2").Value
 
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
 
    On Error Resume Next
    With OutMail
        .To = Destinatario1
        .CC = Destinatario2
        .BCC = Destinatario3
        .Subject = "Este es el asunto, si lo quieres variable va así: " & variable
        .Body = "Este es el cuerpo del mensaje. " & variable & "." & vbCrLf & _
        "Es un poco tosco, pero te permite introducir un cuerpo de mensaje fijo." & vbCrLf & _
         "Si lo quieres variable lo puedes declarar antes como string. Ten cuidado con los saltos de línea"
        .Attachments.Add (RutaArchivo)
        .Send
 
    End With
    On Error GoTo 0
 
    Set fso = Nothing
    Set OutMail = Nothing
    Set OutApp = Nothing

Y todo esto lo tenía dentro de una sentencia IF porque doy al usuario la oportunidad de no enviar por email el archivo si ve que hay algún error o no lo tiene claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar