Macro para envíar correos masivos con adjuntos diferentes
Pido su ayuda para generar una Macro en Excel que pueda enviar correos masivos con archivos adjuntos diferentes, es decir al correo [email protected] se le enviara el archivo eduardo1.pdf, eduardo2.pdf, al correo [email protected] se le enviara el adjunto juan1.pdf, juan2.pdf, juan3.pdf y asi sucecivamente y ademas incluir cuerpo en el mensaje de correo.
Los datos de correo los pienso jalar desde otra hoja de Excel.
Espero su gran ayuda e estado buscando preguntas similares pero lamentablemente los archivos que adjuntan estan caidos en los servidores que los alojan.
Ante todo expresarte mi más sincera admiración! Mil gracias por el tiempo que dedicas a aclarar dudas o ayudarnos y por el tiempo que nos has hecho ganar a todos, facilitando nuestro trabajo con Excel ! Admiración y gracias !
Al hilo de tu respuesta, necesitaría saber si me puedes ayudar en algo:
La solución que propones es fenomenal, pero implica seleccionar uno a uno los archivos que se quieren adjuntar. La duda es: ¿Se podría insertar el archivo de manera automática en función del valor de una celda? (Que corresponde con el nombre del archivo).
Si en la celda M" tengo escrito Antonio Pérez.pdf, que me vaya a la carpeta predeterminada, me busque el archivo Antonio Perez.pdf y me lo adjunte... (No se si me explico)
Por otro lado, la búsqueda que haces con la celda G2 de tu archivo, ¿Cómo lo has hecho?
- Compartir respuesta
5 respuestas más de otros expertos
Te anexo mi aplicación para enviar varios correos, a diferentes destinatarios, con diferentes archivos, con diferentes asuntos, con diferentes cuerpos de mensaje.
'***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
Este es el enlace al archivo:
https://www.dropbox.com/s/ccu9fzc0s2c45cy/correo5b.xlsm?dl=0
Si no puedes descargar tu archivo, escríbeme a mi correo y te envío el archivo.
Mi correo [email protected]
En el asunto del correo escribe tu nombre de usuario “Eduardo Cruz” y el título de esta pregunta.
Woooooow en verdad muchísimas gracias Dante por tomarte tu valioso tiempo y presicion en resolver mi duda acabo de hacer pruebas y justo es lo que necesitaba en verdad muchas gracias!
Adjunto un cambio para versiones 2010 y mayores
[code]'***Macro Para enviar correosSub 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).value 'Destinatarios
dam.CC = Range("C" & i).value 'Con copia
dam.Bcc = Range("D" & i).value 'Con copia oculta
dam.Subject = Range("E" & i).value '"Asunto"
dam.body = Range("F" & i).value '"Cuerpo del mensaje"
'
For j = col To Cells(i, Columns.Count).End(xlToLeft).Column
archivo = Cells(i, j).value
If archivo <> "" Then dam.Attachments.Add archivo
Next
Next
MsgBox "Correos enviados", vbInformation, "
Macro para versiones excel 10 o superiores.
[code]Sub correo()'Por.Dante Amor
Dim objOL As New Outlook.Application
Dim objMail As MailItem
Set objOL = New Outlook.Application
col = Range("H1").Column
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
Set dam = objOL.CreateItem(olMailItem)
'Set dam = CreateObject("outlook.application").CreateItem(0)
dam.To = Range("B" & i).Value 'Destinatarios
dam.CC = Range("C" & i).Value 'Con copia
dam.Bcc = Range("D" & i).Value 'Con copia oculta
dam.Subject = Range("E" & i).Value '"Asunto"
dam.Body = Range("F" & i).Value '"Cuerpo del mensaje"
'
For j = col To Cells(i, Columns.Count).End(xlToLeft).Column
archivo = Cells(i, j).Value
If archivo <> "" Then dam.Attachments.Add archivo
Next
Set dam = Nothing
Next
MsgBox "Correos enviados", vbInformation, "
Archivo para la versión 2010 o superior
https://www.dropbox.com/s/gsqj0kf755ddyn3/correo5c%20muestra.xlsm?dl=0
Al parecer no pueden descargar la versión de Dropbox. Anexo nuevamente la liga:
https://www.dropbox.com/s/gsqj0kf755ddyn3/correo5c%20muestra.xlsm?dl=0
Ahora también lo pueden descargar de google drive:
https://drive.google.com/open?id=1xwqg9-Cq0HuPUlEoefO124CvwgII6I_s
- Compartir respuesta
Que genio!!! Muchas Gracias Anda perfecto - Mariel Eugui
Una consulta como hago para cambiar el tamaño de la fuente ? Muchas Gracias - Mariel Eugui
Hola: Para cambiar la fuente en el cuerpo del correo tendría que crear el cuerpo con otro lenguaje que se llama HTML, si quieres realizo el cambio, crea una nueva pregunta y me explicas exactamente cómo quieres el texto o la fuente del texto. saludos - Dante Amor
Hola! si puede ser fuente calibri o arialtamaño 14, color #1F497D (azulcito)Muchas gracias!Saludos - Mariel Eugui
Hola: Podrías crear una nueva pregunta con lo que necesitas, en el tema de microsoft excel, en el desarrollo de la pregunta escribe que va dirigida a Dante Amor. - Dante Amor
Para Dante amor.... por favor me puede enviar el archivo con la macro para enviar correos electronicos arjuntando archivos, muchas gracias por su ayuda - Lenin Vilcarromero Davila
Tienes que crear una pregunta nueva en el tema de microsoft excel. Gracias - Dante Amor
Hola Dante bajé la base sin embargo detiene el proceso en el to... Qué puedo hacer??? - Neni Vargas
Tendría que revisar tu archivo. Qué versión de excel tienes? vas a utilizar outlook? estás en office? Entra al menú de VBA, Herramientas, Referencias y revisa que tengas activa "Microsoft office object library".Si continúa el problema crea una pregunta y en el cuerpo de la pregunta escribe "para Dante Amor". - Dante Amor
Fantástico, esta macro me viene de maravilla para el trabajo, sin embargo y abusando de su conocimiento le planteo una duda . Esta macro que funciona junto a Outlook (version instalable), ¿seria posible hacerla funcionar bajo Outlook OWA ( web access)? .Gracias ! - Agustin Miguel Sanchez Antiza
Tengo un código para enviar por outlook del office365, no sé si es lo mismo.Crea una nueva pregunta para enviarte el código y lo puedas probar, no puedo enviarte por este mensaje el código, ya que es muy extenso y sólo es permitido cierto número de caracteres. - Dante Amor
Hola Amigo, Descargue tu archivo pero cuando adjunto un archivo para enviar me sale que el archivo no se encuentra, que puedo hacer al respecto??Saludos y muchas gracias!! - José Carlos Gutiérrez Ramos
El archivo debe tener la ruta y el nombre del archivo con todo y extensión. Crea una nueva pregunta para enviarte la nueva versión, en el desarrollo de la pregunta escribe "para Dante Amor" - Dante Amor
Buenos días Dante, muchas gracias por su colaboración. Tengo una duda, ¿cómo hago para realizar esta misma tarea (correos masivos a diferentes personas con diferentes adjuntos) si uso Lotus Notes? ¿Qué se debe ajustar en la macro? Saludos. - Mauricio Ureña
La macro es para outlook.Para lotus necesitas otra macro, revisa el siguiente enlace: ¿Es posible enviar desde un Excel correos a diferentes destinatarios,adjuntando archivos distintos usando el Lotus y no outlook? - Dante Amor
Muchas gracias Dante, de verdad es muy útil esta macro, consulta: hay algún tope en la cantidad de correos electrónicos a enviar? - Salvador Vargas
El tope podría ser la cantidad de líneas que tienes en una hoja de excel y la capacidad de envío de outlook - Dante Amor
Excelente Dante, muchas gracias!!! - Salvador Vargas
Funciona perfecto. Muchas Gracias. - Carolina Villa
:) - Dante Amor
Yo tenía el mismo problema, pero agregue esta línea después del For " Dim dam As Outlook.MailItem " y con eso lo resolví, gracias por la Macro. - Javier Garcia Romero
Viejo... funciona impecable, alguien estará más agradecido que yo.. - oscar orellana
Con gusto Oscar. Feliz año! - Dante Amor
Hola Dante. Me ha servido mucho el excel que subiste a dropbox, y quisiera utilizarlo pero consulto si existe la posibilidad de que el mail tome mi firma actual de outlook ya que actualmente se envía sin firma. Agradeceré tu gran ayuda. - Victor Fretes
Revisa esta respuesta: Usar Firma de Outlook ya establecida - Dante Amor
Hola Dante, estoy iniciando en el tema de Macros, y tu planilla me ha ayudado mucho, pero hace poco me cambiaron el equipo y no me funciona ninguna de las 2 macros... he cambiado a office estándar y el professional 2016 y nada... la primera macro no reconoce dam´to y la segunda macro dice correos enviados pero no se envía nada, por fis ayúdame te estaré eternamente agradecida. Cariños Jessica - Jessica Fuentealba
Entra al menú de VBA, Herramientas, Referencias, y revisa que esté marcada la referencia: Microsoft office object Library y Microsoft Outlook Object Library. También puse una tercera macro para que la pruebes. - Dante Amor
Muchísimas gracias, Dante Amor - Alejandro Recio Recio
Hola Dantee!!! Tengo el mismo problema que Jessica, la macro me corre y dice correos enviados; sin embargo, no envía nada, ya marqué las referencias indicada en comentario anterior. ¿ Por qué otro motivo podría no estar funcionando? Quedo atenta a tu respuesta y desde ya Miil gracias!!! - Milagros Nina
Probaste la última macro? Qué versión de office tienes? Envíame un correo a [email protected] para enviarte mi última versión y la pruebes. - Dante Amor
Hola Dante, tengo el office 2013. Te envié mi archivo por gmail, asunto: no puedo enviar correos masivos. Ojalá puedas apoyarme!!! Gracias - Milagros Nina
Hola Dante, la respuesta que brindas aquí es exactamente lo que necesito, pero no se como se hace, no tengo idea de programación pero si me dices por favor un paso a paso te agradecería mucho - jenny lizbeth romero ortega
Hola muchas gracias por el aporte!!Estoy usando Office 365, ya intenté usar las 3 versiones de código y me manda errores. Que es lo que anda mal? Gracias - artefactoestudio .
Para enviar por office 365: Existe alguna macro para envió masivo con mismo cuerpo y asusto pero diferente E-mail y adjuntos para office 365 ultima version? - Dante Amor
Vamos carajos!. Muchas gracias muy buen aporte, me anda a la perfección, y la incorporación de todos los campos que pusiste es fundamental, así se pueden modificar todos los detalles. La única duda que quisiera preguntarte es sobre la posibilidad de que envíe directamente sin preguntarme si quiero "Permitir" o "Denegar" el envío, aunque quizás es una opción de seguridad de windows y no de outlook / excel. Saludos y abrazos! - Gaston Carrera
Es correcto, es una opción de seguridad de windows. Deberás desactivar el nivel de seguridad, pero no es recomendable por los virus. Sal u dos - Dante Amor
Hola, estoy realizando la verificación de llegada al correo destinatario y no llega el email, que puede ser? - Jose Alejandro Baena Cuartas
Hola, agradezco tu atención, intente utilizar la macro, sin embargo marca un error de depuración, podrías apoyarme, mil gracias, el error es 2147024893(80070003) en tiempo de ejecución dice que la ruta de acceso no existe. Que compruebe la ruta de acceso sea correcta - FABIOLA SALINAS
En las celdas debes poner el archivo con todo y carpeta y extensión. - Dante Amor
Hola, Agradeceria si me puedes mandar el archivo para version 10 o superior a la dirección [email protected] gracis - Miguel Ángel Carro
Puse el enlace para descargar el archivo de google drive. - Dante Amor
@Dante Amor Estoy desarrollando una macro para estados de cuentas, en una carpeta tengo más de 100 documentos PDF y en la primera columna tengo cada cliente pero son demasiados... cada PDF tiene el nombre correspondiente de cada cliente y lo que quiero es insertar los archivos que corresponden en cada celda sin la necesidad de seleccionar los archivos uno por uno...Me sería de gran ayuda! Saludos!! - Saori Auschwitz
@Saori Auschwitz No deberías poner una respuesta haciendo otra pregunta.Si el archivo para enviar correos masivos no es lo que necesitas, entonces debes crear una nueva pregunta.Crea la nueva pregunta y con gusto la reviso. - Dante Amor
Me ha sido muy útil el archivo pero no he podido enviarlos correctamente y a más de 5 correos, o me da error o los envía y notifica pero no llegan.me ayudas por favor, gracias. - Alvaro Gomez
Dante Amor Excelente respuesta, hace rato estaba buscando una solución como esta... lo único que agregaría seria ver la posibilidad de mejorar el cuerpo del correo, agregarle una firma, logo, etc. Vi que alguien más pidió esto, ¿Ya le compartiste la respuesta?, muchas gracias un abrazo - Ivan Pulgar
revisa esta pregunta: Enviar mail desde excel con una firma y adjuntos - Dante Amor
Estoy desarrollando una macro para estados de cuentas, en una carpeta tengo más de 100 documentos PDF y en la primera columna tengo cada cliente pero son demasiados... cada PDF tiene el nombre correspondiente de cada cliente y lo que quiero es insertar los archivos que corresponden en cada celda sin la necesidad de seleccionar los archivos uno por uno...
Me sería de gran ayuda!
- Compartir respuesta
Agradecería porfavor si me enviara el archivo para versión 10 o superior. Mil gracias! [email protected]
- Compartir respuesta
- Compartir respuesta
- Compartir respuesta
no debes postear otra respuesta. Debes agregar un comentario en respuesta, o bien, crea tu propia pregunta. - Dante Amor
No puedo responder aquí, pusiste una respuesta en una pregunta. Si necesitas información o cambios en la macro, debes crear una nueva pregunta. - Dante Amor