Macro para mandar mail desde excel conrango de celdas

Tengo esta macro,

La puedes modificar para que tome un rango en lugar de una celda (N12).

Sub FREIGHTMAIL()
    Row = ActiveCell.Row
    Customer = Row
    Custname = Range("O" & Customer & "")
    Cmail = Range("N" & Customer & "")
    CCmail = Range("N8")
    Fromm = Range("N10")
 '   USAport = Range("AH" & Customer & "")
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    Arrcustomer = Range("CC" & Customer & "")
    Destin = Range("K" & Customer & "")
    Destinstate = Range("L" & Customer & "")
    Order = Range("N12")
    Msg = MsgBox("Do you want to send email requesting freight?", vbYesNo, "Customer Arrival Notice")
    If Msg <> 6 Then
         Exit Sub
    End If
    On Error Resume Next
        With OutMail
         ' 1 not emptys
        If Worksheets("Containers").Range("N12") <> "" Then
            .To = " " & Cmail & " "
            .CC = " " & CCmail & " "
            .Subject = "Ffreight rate needed"
            .Body = Custname & "," & vbNewLine & vbNewLine & "Can you please get a freight rate for:" & vbNewLine & vbNewLine & Fromm & vbNewLine & Order _
                & vbNewLine & vbNewLine & "Regards," & vbNewLine & "George Cue Perez" & vbNewLine & "Logistics Manager" & vbNewLine & "Strategic Tire Supply Group" & _
                 vbNewLine & "10201 Wayzata Blvd. Suite #250" & _
                 vbNewLine & "Minnetonka, MN 55305" & vbNewLine & "Tel: 763-746-0410" & vbNewLine & "Cell: 952 242 6992"
            .Send
        Else
        Exit Sub
        End If
      End With        
    'Delete the file you have send
    Kill TempFilePath & TempFileName & FileExtStr
    Set OutMail = Nothing
    Set OutApp = Nothing
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    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

H o l a:

¿Puedes decirme cuál rango?

¿Pero quieres que envíe un mail por cada celda que tienes en ese rango?

¿O quieres enviar en un correo el contenido de las celdas de un rango?

El rango seria variable ("N12").CurrentRegion

Sub FREIGHTMAIL()
    Row = ActiveCell.Row
    Customer = Row
    Custname = Range("O" & Customer & "")
    Cmail = Range("N" & Customer & "")
    CCmail = Range("N8")
    Fromm = Range("N10")
 '   USAport = Range("AH" & Customer & "")
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    Arrcustomer = Range("CC" & Customer & "")
    Destin = Range("K" & Customer & "")
    Destinstate = Range("L" & Customer & "")
    Order = Range("N12")
    Msg = MsgBox("Do you want to send email requesting freight?", vbYesNo, "Customer Arrival Notice")
    If Msg <> 6 Then
         Exit Sub
    End If
    On Error Resume Next
        With OutMail
            .To = " " & Cmail & " "
            .CC = " " & CCmail & " "
            .Subject = "Ffreight rate needed"
            .Body = Custname & "," & vbNewLine & vbNewLine & "Can you please get a freight rate for:" & vbNewLine & vbNewLine & Fromm & vbNewLine & Order _
                & vbNewLine & vbNewLine & "Regards," & vbNewLine & "George Cue Perez" & vbNewLine & "Logistics Manager" & vbNewLine & "Strategic Tire Supply Group" & _
                 vbNewLine & "10201 Wayzata Blvd. Suite #250" & _
                 vbNewLine & "Minnetonka, MN 55305" & vbNewLine & "Tel: 763-746-0410" & vbNewLine & "Cell: 952 242 6992"
            .Send
      End With        
    'Delete the file you have send
    Kill TempFilePath & TempFileName & FileExtStr
    Set OutMail = Nothing
    Set OutApp = Nothing
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    Range("P" & Customer & "").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorLight2
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0
    End With
End Sub

Puedes poner el ejemplo de lo que tienes en el rango N2. Currentregion

Y responder esto:

¿Pero quieres que envíe un mail por cada celda que tienes en ese rango?

¿O quieres enviar en un correo el contenido de las celdas de un rango?

Un solo correo el rango

Puedes poner el ejemplo de lo que tienes en el rango N2. Currentregion

Entre más información pongas, más práctico será realizar el cambio

En el rango tengo esto:

Brand     PO#    Cans      Destination                          Rate

Goform  7836       2      Hazelwood, MO 63042

 Goform 7837      1      Kansas City, MO 64123 

Disculpa que insista, pero en los datos no veo cuál es la celda N2.

Podrías poner una imagen o poner las filas y las columnas.

Dime qué datos tienes y dime qué esperas de resultado en el correo.

Es decir, comentas :

"

Que tome un rango en lugar de una celda (N12)

"

Entonces dime que tienes en N2, en N3 en N4, ¿y dime cómo quieres estas celdas en el correo?

Solamente me puedo imaginar que si tienes esto:

N2= "xyz"

N3= "abc"

N4= "mdf"

En el correo, ¿actualmente tienes "xyz" y quieres que en el correo te ponga "xyzabcmdf"?

Lo puedes explicar ampliamente con ejemplos reales y claros.

Es como sigue:

Columnas N,O,P,Q,R

Renglones 12,13,14,15

12          N           O          P             Q                                           R

13      Brand     PO#    Cans      Destination                          Rate

14      Goform  7836       2      Hazelwood, MO 63042

15       Goform 7837      1      Kansas City, MO 64123 

Pero sigo sin entender qué esperas que se ponga en el correo

¿Según tu ejemplo qué tienes en N12?

No respondiste esto:

Solamente me puedo imaginar que si tienes esto:

N12= "xyz"

N13= "abc"

N14= "mdf"

En el correo, ¿actualmente tienes "xyz" y quieres que en el correo te ponga "xyzabcmdf"?

Como te mando un dibujo?

O envíame tu archivo y me explicas con comentarios e imágenes lo que necesitas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Jorge Cue” y el título de esta pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas