Visual Basic para Aplicaciones - Enviar documentos adjuntos individuales a una misma direccion

Life is soft - evento anual de software empresarial
 
Vista:

Enviar documentos adjuntos individuales a una misma direccion

Publicado por MariCris (1 intervención) el 15/04/2021 19:54:14
Hola!

Necesito realizar una macro en excel que me permita capturar varios archivos (en formato xml) de una carpeta (5.000 archivos aprox) y enviarlos de manera individual (de 1 a 1) a un correo electronico especifico.

Encontre una macro que me permite capturar los adjuntos y pasarlos a un excel en donde especifique las columnas del correo, titulo, cuerpo, adjunto y resulto todo ok.

Encontre tambien varias macros que permiten realizar el envio linea por linea utilizando outlook pero en el codigo al hacer el llamado a la app me da error
Set app = CreateObject("Outlook.Application").CreateItem(0)
Encontre varios ejemplos pero siempre coinciden en el mismo error.
Verifique que en Referencias de VB estuviera seleccionado Outlook pero aun no logro poder realizar este proceso, ya no se que hacer.

Espero alguien me pueda ayudar por favoooor.

Gracias,
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
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Enviar documentos adjuntos individuales a una misma direccion

Publicado por MIGUEL (121 intervenciones) el 18/04/2021 00:55:56
Hola MariCris

Te dejo unas macros que no me han dado problemas para enviar correos, asegurate de tener activa la referencia Microsoft Outlock 16.0 Object Library, el 16.0 es la versión de mi excel, solo activa la que tengas, tambien asegurate de activar la configuración de acceso para apps menos seguras de tu correo que utilizas en Outlock(almenos gmail pide activarla), solo modifica a tu necesidad.

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
Public correoDestino As String
Public asuntoCorreo As String
Public mensajeCorreo As String
Public documentoAdjunto As String
 
Public Sub envio1()
    Dim OutlookApp As Outlook.Application
    Dim Mitem As Outlook.MailItem
    Set OutlookApp = New Outlook.Application
    Set Mitem = OutlookApp.CreateItem(olMailItem)
    With Mitem
        .To = correoDestino
        .Subject = asuntoCorreo
        .Body = mensajeCorreo
        '.Attachments.Add documentoAdjunto'quitar comentario si se adjunta uno o mas archivos al correo
        .Send
    End With
End Sub
 
Public Sub autoEnvio()
    Dim fechaEnvio As String
    Dim ultfila As Long
    ultfila = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To ultfila
        fechaEnvio = Hoja1.Range("A" & i)
        If DateValue(fechaEnvio) = Date And Hoja1.Range("E" & i) <> "ENVIADO" Then
            correoDestino = Hoja1.Range("B" & i)
            asuntoCorreo = Hoja1.Range("C" & i)
            mensajeCorreo = Hoja1.Range("D" & i)
            'documentoAdjunto = "" 'direccion completa del archivo a adjuntar, si no se adjunta nada dejar comentado
            Hoja1.Range("E" & i) = "ENVIADO"
            Call ModuloCorreo.envio1
        End If
    Next i
End Sub

Espero te sirva.

Saludos.
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