Elegir cuenta de correo al enviar un email en excel

Uso una macro que funciona perfectamente gracias a Dante Amor que me ayudó mucho con ella.
Uso varias cuentas en Outlook y por alguna razón después de cambiar de ordenador, aun estando como predeterminada la que quiero usar para enviar los emails, excel sigue usando otra.
¿Podemos arreglar el código para que fuerce a usar la cuenta que yo quiero?

Sub GuardarPDFyEnviar()
    Dim Ruta As String
    'Dim Archivo As String
    Dim NombreArchivo As String
    Dim Celda As String
    Ruta = ActiveWorkbook.Path & "\"
    'Archivo = ActiveWorkbook.Name
    Celda = Cells(9, "H") & ".pdf"
    NombreArchivo = Ruta & Celda
    Do While True
        If Dir(NombreArchivo) <> "" Then
            res = MsgBox("Ya existe un archivo con el mismo nombre: " & vbCr & _
                         NombreArchivo & vbCr & vbCr & _
                         "REEMPLAZAR? - Selecciona NO para escribir un nuevo nombre", _
                         vbQuestion & vbYesNo, "ALERTA")
            If res = vbYes Then
                Application.DisplayAlerts = False
                Exit Do
            Else
                NombreArchivo = InputBox("Escribe el nuevo nombre de archivo", "ARCHIVO", NombreArchivo)
                If NombreArchivo = "" Then
                    MsgBox "Archivo invalido", vbExclamation, "SE CANCEL” EL ENVIO"
                    Exit Sub
                End If
            End If
        Else
            Exit Do
        End If
    Loop
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=NombreArchivo, _
        Quality:=xlQualityStandard, IncludeDocProperties:=False, _
        IgnorePrintAreas:=False, From:=1, To:=1, _
        OpenAfterPublish:=True
    ActiveWorkbook.Save
    ' Enviar Email
    Set dam = CreateObject("outlook.application").createitem(0)
        dam.To = Range("K15")
        dam.Subject = Range("K17")
        dam.Body = Range("K19")
        Dam. Attachments. Add NombreArchivo
        Dam. Send
End Sub
Respuesta
2

Dante Amor he revisado los dos post que me has puesto, en el primero dice:

Después de esta linea:

.Subject = Range("a204").Value

Pon esta:

.SendUsingAccount = mensaje. Session. Accounts. Item(2)

Sin embargo no tengo ninguna linea que se parezca a .Subject, creo que en mi código se está usando dam.X en su lugar

Puedes ayudarme? Un saludo

Ponlo después de esta línea

        dam.Subject = Range("K17")

Hola, poniendo la línea tal cual me da error de compilación, he probado de ponerle el "dam." delante de esta manera:

 ' Enviar Email
    Set dam = CreateObject("outlook.application").createitem(0)
        dam.To = Range("K15")
        dam.Subject = Range("K17")
        dam.SendUsingAccount = mensaje.Session.Accounts.Item(2)
        dam.Body = Range("K19")
        dam.Attachments.Add NombreArchivo
        dam.Send

Pero entonces me da error (424 Se requiere un objeto)

Cambia esta línea

dam.SendUsingAccount = mensaje.Session.Accounts.Item(2)

por esta

dam.SendUsingAccount = dam.Session.Accounts.Item(2)

Ahora no da error, pero sigue sin funcionar no consigo que lo envíe con la cuenta secundaria, alguna idea?

Antes que lo preguntes, tengo las 2 cuentas configuradas en outlook y funcionando correctamente, he comprobado que puedo enviar y recibir emails desde ambas cuentas je je

Prueba con esta:

dam.SentOnBehalfOfName = "CuentaCorreo"

Cambia "CuentaCorreo" por el correo2

no funciona, sigue enviándolo desde la cuenta predeterminada :S

Puede ser por tu versión de office. A otros usuarios les ha funcionado!

Vas a tener que desinstalar el correo que no ocupas, enviar tus correos y volver a instalar tu correo.

El correo quiero enviarlo desde [email protected],
En la línea que me has puesto pongo que lo envíe desde [email protected]
sin embargo lo envía desde [email protected]
En el mensaje recibido, en la información del remitente pone:
"José <[email protected]> en nombre de [email protected]"

Es curioso, parece que esa línea le diga que lo envíe en nombre de alguien, pero no desde esa cuenta, ¿puede ser?
Uso office 2016 original

Borra todas las cuentas y envía solamente con la cuenta que necesitas; y pruebas con la macro original.

Hola Dante Amor ya dí con la solución, la comento aquí por si alguien tiene el mismo problema. Es bastante sencilla pero poco razonable, además de definir la cuenta como predeterminada (que eso ya lo tenía) también hay que cambiar el archivo de datos y ponerlo como predeterminado.

Gracias un saludo

Esto es:

Eso es configuración de Outlook, la macro funciona. No olvides valorarla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas