Como enviar archivos pdf y xml desde excel

Dante Amor, espero y me puedas ayudar por favor.

Tengo un archivo en excel que me lee la información de los archivos xml, nombre, rfc, folio fiscal, subtotal, iva, total, etc. Y en la columna m y n me lee el nombre del archivo xml y pdf respectivamente, lo que quiero poner en la hoja es una macro que me permita de esa relación de archivos, poder seleccionar solo algunos y poder enviarlos por correo electrónico, y que tanto el xml y pdf se adjunten automáticamente para enviar el correo a una dirección en especifico, que en alguna celda pueda poner la dirección de correo.(Solo se enviaran a una sola dirección), pero que en alguna columna este algo así como un cuadro de selección para ir activando los archivos que quiero enviar por correo electrónico.

1 Respuesta

Respuesta
3

Si el envío de correos es por outlook, te anexo una aplicación que desarrollé para enviar varios correos y puedes incluir uno o varios archivos.

Esta es la macro.

'***Macro Para enviar correos
Sub correo()
'Por.Dante Amor
    col = Range("H1").Column
    For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
        Set dam = CreateObject("outlook.application").createitem(0)
        dam.To = Range("B" & i) 'Destinatarios
        dam.CC = Range("C" & i) 'Con copia
        dam.Bcc = Range("D" & i) 'Con copia oculta
        dam.Subject = Range("E" & i) '"Asunto"
        dam.body = Range("F" & i) '"Cuerpo del mensaje"
        '
        For j = col To Cells(i, Columns.Count).End(xlToLeft).Column
            archivo = Cells(i, j)
            If archivo <> "" Then dam.Attachments.Add archivo
        Next
        dam.send 'El correo se envía en automático
        'dam.display 'El correo se muestra
    Next
    MsgBox "Correos enviados", vbInformation, "SALUDOS"
End Sub

Descarga el archivo desde este enlace

https://www.dropbox.com/s/ccu9fzc0s2c45cy/correo5b.xlsm?dl=0 

Saludos. Dante Amor

Si es lo que necesitas.

Dante Gracias por tu respuesta, ya la había checado, pero fíjate que en tu aplicación debes de seleccionar los archivos que vas a enviar uno a uno e ir a la dirección donde están físicamente, en mi hoja de excel a partir de la columna 1 fila 8 hacia abajo, tengo la información de cada xml, en la columna m y n me da el nombre del archivo tanto la extensión xml(factura1.xml) como pdf(factura1.pdf), lo que yo necesito, si es que se puede implementar es que a lado de cada archivo(columna ñ) me permita seleccionarlo, es decir si tengo 10 facturas, que puieda seleccionar la 1, 3, 5 etc), y los que seleccione se envíen a la dirección del correo que anote en la columna por ejemplo a1, que en esa columnayfila anote yo el correo al que los voy a enviar, pero solo los archivos(xml y pdf), que halla seleccionado previamente en la hoja donde están todos los archivos.

Envíame tu archivo para revisarlo y adapto la macro tal cual la quieres

Mi correo [email protected]

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

Dante Amor, ya te envíe la hoja de excel, para que por favor me ayudes como solucionar lo que te comente.

Gracias y Saludos.

Ruben Cz.

Te anexo la macro.

[code]Sub EnviarCorreo()
'Por.Dante Amor
    For i = 5 To Range("O" & Rows.Count).End(xlUp).Row
        If Cells(i, "O") = "SI" Then
            ruta = [B1] & "\"
            Set dam = CreateObject("outlook.application").createitem(0)
            dam.To = [E1]
            a1 = ruta & Cells(i, "K") & ".xml"
            If Dir(a1) <> "" Then
                dam.Attachments.Add a1
            End If
            a2 = ruta & Cells(i, "K") & ".pdf"
            If Dir(a2) <> "" Then
                dam.Attachments.Add a2
            End If
            dam.Send 'El correo se envía en automático
            'dam.Display
        End If
    Next
    MsgBox "Correos enviados", vbInformation, "

Dante Amor, gracias por la información. ¿Por ultimo me podrías decir como hacer para que en la columna N me leea el nombre del archivo pdf? Para añadirlo al código que ya tengo. ¿En la configuración del envío de correo se puede hacer a través de gmail?

Gracias

Ruben Cz

Cambia la "K" por la "N"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas