Mandar correo desde Excel cambiando .Introduction por .Body

Esto es lo que tengo y quiero cambiar

. Introduction por

. Body

Sub Send_Range()
   Row = ActiveCell.Row
   Customer = Row
   Custname = Range("O" & Customer & "")
   Cmail = Range("N" & Customer & "")
   CCmail = Range("O8")
   Fromm = Range("N10")  
   ActiveSheet.Range("P23").CurrentRegion.Select  
   ActiveWorkbook.EnvelopeVisible = True   
   With ActiveSheet.MailEnvelope
      .Introduction = Custname & "," & vbNewLine & vbNewLine & "Can you please get a freight rate for:" & vbNewLine & vbNewLine & Fromm
      .Item.To = " " & Cmail & " "
      .Item.CC = " " & CCmail & " "
      .Item.Subject = "Ffreight rate needed"
      .Item.Send
   End With
   Range("P" & Customer & "").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorLight2
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0
    End With
End Sub

1

1 respuesta

Respuesta
1

Prueba así:

Sub Send_Range()
   Row = ActiveCell.Row
   Customer = Row
   Custname = Range("O" & Customer & "")
   Cmail = Range("N" & Customer & "")
   CCmail = Range("O8")
   Fromm = Range("N10")
   ActiveSheet.Range("P23").CurrentRegion.Select
   ActiveWorkbook.EnvelopeVisible = True
   With ActiveSheet.MailEnvelope
      '.Introduction = Custname & "," & vbNewLine & vbNewLine & "Can you please get a freight rate for:" & vbNewLine & vbNewLine & Fromm
      .Item.body = Custname & "," & vbNewLine & vbNewLine & "Can you please get a freight rate for:" & vbNewLine & vbNewLine & Fromm
      .Item.To = " " & Cmail & " "
      .Item.CC = " " & CCmail & " "
      .Item.Subject = "Ffreight rate needed"
      .Item.send
   End With
   Range("P" & Customer & "").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorLight2
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0
    End With
End Sub

':)
S a l u d o s . D a n t e   A m o r
':) Si es lo que necesitas. Recuerda valorar la respuesta. G r a c i a s.

Estimedo Dante,

Funciona pero no manda el .Body.

Saludos,

Es que no es .Body es .Item.body

Revisa que lo tengas así en la macro y prueba nuevamente. Revisa el correo enviado, en mis pruebas en el correo enviado sí aparece el body.

Probado tres veces.

Manda el asunto y el rango pero no manda el cuerpo:

 .Item.body = Custname & "," & vbNewLine & vbNewLine & "Can you please get a freight rate for:" & vbNewLine & vbNewLine & Fromm

H o l a:

Hay que entender un par de cuestiones en el uso de MailEnvelope.

Primero, la instrucción que estás utilizando en la macro:

With ActiveSheet.Parent.MailEnvelope

Significa que estás enviando toda la hoja, o más bien, desde la primera celda y hasta la última celda con datos.

Si quieres enviar un rango tendrías que poner algo como esto:

    Range("A1:F8").Select
    With Selection.Parent.MailEnvelope

Primero seleccionas el rango y después le indicas que vas a enviar lo seleccionado con Selection.Parent.MailEnvelope


Segundo, el MailEnvelope no tiene Body. Lo que va en el cuerpo del correo es el rango seleccionado o la hoja. Si quieres enviar algo adicional al Body, es para eso que se utiliza .introduction.


Por último, esta línea que tienes me marca un error.

Range("P" & Customer & "").Select

Lo correcto sería:

Range("P" & Customer).Select

La macro podría quedar así:

Sub Send_Range()
'Act.Por.Dante Amor
    Row = ActiveCell.Row
    Customer = Row
    Custname = Range("O" & Customer & "")
    Cmail = Range("N" & Customer & "")
    CCmail = Range("O8")
    Fromm = Range("N10")
    'ActiveSheet.Range("P23").CurrentRegion.Select
    ActiveWorkbook.EnvelopeVisible = True
    With ActiveSheet.MailEnvelope
        .Introduction = Custname & "," & vbNewLine & vbNewLine & _
                "Can you please get a freight rate for:" & vbNewLine & vbNewLine & Fromm
        .Item.To = " " & Cmail & " "
        .Item.CC = " " & CCmail & " "
        .Item.Subject = "Ffreight rate needed"
        .Item.send
    End With
    ActiveWorkbook.EnvelopeVisible = False
    Range("P" & Customer).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorLight2
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0
    End With
End Sub

Espero que con la explicación esté más claro el uso de MailEnvelope


':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas