El 30 de mayo de 2022 Google actualizó los requisitos de seguridad para entrar desde aplicaciones de terceros. Hemos hecho un vídeo que complementa a este en el que se explica cómo hacer las modificaciones de seguridad: ruclips.net/video/CL5w3sW72UI/видео.html Si te ha gustado este vídeo puedes ver más en el Curso de Excel avanzado 🔥🔥🔥 cutt.ly/JnHy9yG El código macro ----------------- Sub EnviarCorreo() 'Aprendiz de Excel 'ruclips.net/channel/UCvbrUg7GQgg_E_MNUY3RnyA Dim Email As CDO.Message Sheets("Mails").Select CorreoOrigen = Range("i3").Value ClaveCorreo = Range("i4").Value For i = 2 To Range("A" & Rows.Count).End(xlUp).Row Set Email = New CDO.Message 'myaccount.google.com/lesssecureapps Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com" Email.Configuration.Fields(cdoSendUsingMethod) = 2 With Email.Configuration.Fields .Item("schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 .Item("schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1) .Item("schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 .Item("schemas.microsoft.com/cdo/configuration/sendusername") = CorreoOrigen .Item("schemas.microsoft.com/cdo/configuration/sendpassword") = ClaveCorreo
Si te ha gustado este vídeo puedes ver más en el Curso de Excel avanzado 🔥🔥🔥 cutt.ly/JnHy9yG El código macro ----------------- Sub EnviarCorreo() 'Aprendiz de Excel 'ruclips.net/channel/UCvbrUg7GQgg_E_MNUY3RnyA Dim Email As CDO.Message Sheets("Mails").Select CorreoOrigen = Range("i3").Value ClaveCorreo = Range("i4").Value For i = 2 To Range("A" & Rows.Count).End(xlUp).Row Set Email = New CDO.Message 'myaccount.google.com/lesssecureapps Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com" Email.Configuration.Fields(cdoSendUsingMethod) = 2 With Email.Configuration.Fields .Item("schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 .Item("schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1) .Item("schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 .Item("schemas.microsoft.com/cdo/configuration/sendusername") = CorreoOrigen .Item("schemas.microsoft.com/cdo/configuration/sendpassword") = ClaveCorreo End With With Email .From = CorreoOrigen .To = Range("A" & i).Value .CC = Range("B" & i).Value .BCC = Range("C" & i).Value .Subject = Range("D" & i).Value .TextBody = Range("E" & i).Value .Attachments.DeleteAll .AddAttachment (Range("F" & i).Value) .Configuration.Fields.Update On Error Resume Next .Send End With Next End Sub ---------------
En verdad le agradezco un montón por esta enseñanza. Lo he hecho paso a paso como usted indico y me resulto de perfectamente. No me cansare de agradecerle ya que no ubicaba otras opciones que no sean aplicaciones de pago. Un abrazo desde ya un nuevo suscriptor de Perú.
Hola estimado amigo. Le agradezco de antemano el tiempo que ha dedicado a realizar el presente video, con el propósito de enseñarnos tus conocimientos, y espero poder aprender a hacerlo. Ahora es solo buscar la información a pegar y listo. Tienes mi like y mi suscripción. Un abrazo
Год назад+1
muchas gracias por compartir me sirvio un monton para un trabajo que tenia que hacer. Saludos desde Jujuy - Argentina
@@AprendizdeExcel Hola amigo, espero que siga creciendo las visitas en tu canal. Debo hacerte una pregunta ¿Cómo puedo hacer para configurar un correo de webmail en esta misma hoja de macro?
No se exactamente a qué te refieres con un correo de webmail, pero mediante Outlook preparamos otros vídeo que quizás es lo que necesites: ruclips.net/video/4xZWk9wgi2I/видео.html
Your dedication, passion, and expertise shine through every video, and I am truly grateful for the valuable knowledge and entertainment you provide. Whether it's informative tutorials, engaging vlogs, or inspiring storytelling, your content has had a profound impact on me and many others in your audience 👏🏻👏🏻
Primero que nada agradecerte por este más que interesante video para este tarea rutinaria y super importante. Me llamo la atención la parte donde pulsas imprimir factura y te genera los archivos PDF de manera automática. Tendrás el video que explica como hacer eso, hace un tiempo necesite algo así y no pille como hacerlo. Muchas Gracias
Hola excelente video me funciono muy bien solo tengo una pregunta si cuentas con un correo Gmail que contiene el dominio de la empresa se tiene que agregar algo extra ?
Hola! Me gusto mucho su video lo pude implementar y me funciona de forma excelente, tengo la siguiente duda eso si, como puedo implementar mas texto en el cuerpo del correo? Cada celda de excel solo me permite un maximo de 255 caracteres , entones estaba pensando que quizas se podria escribir el cuerpo en el código pero no se como hacerlo y de la misma forma , a través del código que se personalice cada correo con el nombre de la persona, nos podria indicar como hacerlo si no es molestia? Muchas gracias ❤
Puedes poner texto en el código o poner varias celdas. Te recomiendo que veas el segundo vídeo de la serie "Enviar EMAILS MASIVOS 📧 con FIRMA 📝, IMÁGENES 🖼, LINKS y ADJUNTOS 📎 con Excel": ruclips.net/video/ULTbreSw2bU/видео.html
AMigo nunca consegui hacer nada en excel, pero tu video fue tan claro que mismo yo no sabendo usar excel y no siendo hispano hablante entendi todo y consegui hacer envios de correos, pero tengo una duda como guardo los codigos para poder usarlos mas adelante?
Excelente video. Muchas gracias colega... digo que el aprendiz soy yo ☺️. Sería interesante que nos muestres en un nuevo vídeo, cómo se podría enviar con este método CDO, un rango de celdas o una hoja activa en el cuerpo de texto como HTML. ¿Podrías? Gracias.
Hola Fabian, gracias por comentar y por suscribirte 😉 Si quieres varios adjuntos lo más sencillo es añadir tantas líneas de adjuntos como quieras. Siguiendo la estructura del ejemplo del vídeo en la columna F tienes el adjunto 1 y en la G el adjunto 2. La línea a añadir sería esta: .AddAttachment (Range("G" & i).Value) Y esa parte de la macro te podría quedar así: With Email .From = CorreoOrigen .To = Range("A" & i).Value .CC = Range("B" & i).Value .BCC = Range("C" & i).Value .Subject = Range("D" & i).Value .TextBody = Range("E" & i).Value .Attachments.DeleteAll .AddAttachment (Range("F" & i).Value) .AddAttachment (Range("G" & i).Value) .Configuration.Fields.Update On Error Resume Next
La solución podría estar en subir previamente la imagen a un servidor público y adjuntar la url de esta. Podría ser con un código similar a este: En un código HTMLBody con formatos sería algo así: .HTMLBody = "" & "" & Range("E" & i).Value & "" & _ "" & "Aprendiz de Excel" & "" & _ "" & "Calle Desengaño 23" & " " & _ "RUclips Aprendiz" & ""
Hola! muchas gracias por el gran video y explicación, es posible lo siguiente: 1) Añadir una imagen personalizada al cuerpo del correo (no adjunta) 2)En vez de enviar directamente los correos dejarlos como borradores Muchas gracias!!
Para añadir imágenes, links, o lo que necesites, te recomiendo ver este vídeo: ruclips.net/video/E6kcXoTWEN8/видео.html El protocolo CDO no permite la opción de guardar en borradores. Deberías descargar la API de Gmail para eso. El proceso es bastante más complejo
Aprendiz, eres el mejor, de antemano muchas gracias. Quisiera saber si tienes un instructivo para el programa que mencionas que convierte una lista en varios archivos en PDF, el de las facturas que mencionas. Quedo atento. Muchas gracias.
@@AprendizdeExcel Creo que no me hice entender muy bien. Me refiero al ejemplo que citas alrededor del 1:30 en este video, con el programa del administrador con una comunidad de propietarios, y cómo se generan automáticamente n facturas archivos PDF, "Imprimir facturas". Quedo atento. Gracias.
Creo que si te explicaste bien, pero yo no. El ejemplo que cito en el minuto 1:30 es el segundo vídeo que te enlazaba (ambos son de la misma serie) Básicamente es un buscarv sobre una base de datos de clientes y facturas y las saca todas a la vez ruclips.net/video/OsASXikKbzU/видео.html
Muchas gracias por el video, una pregunta, en caso de querer enviar solo un archivo pdf a un solo cliente, que tengo que modificar? Gracias de antemano
Excelente video! Sabes si hay una manera de agregar screenshots pero que no se vea como un archivo adjunto, que literal se vea en el cuerpo del correo?
Me funcionó perfecto! muchas gracias!! Por no dejar, cómo tendría que hacer si quiero enviar 2 archivos adjuntos distintos? En realidad el caso es que son 2 PDF por fila: 1 PDF genérico que es el mismo para todos (resumen de gastos generales), + uno distinto para cada fila (gasto por propietario). Intenté separando las rutas por punto y coma, pero no funcionó. Tampoco me funcionó poner la 2da ruta en la celda del lado e indicándole el rango completo F:G a la macro.
Gracias por tu comentario Irina. Añade tantas líneas de código como necesites. Los adjuntos se van acumulando. Sería algo así: ----------- .Attachments.DeleteAll .AddAttachment (Range("F" & i).Value) .AddAttachment (Range("G" & i).Value) .Configuration.Fields.Update ---------- Si vas a tener un adjunto siempre fijo lo podrías dejar bloqueado, por ejemplo en G1. Eso te ahorrará arrastrar el segundo adjunto en todos los archivos. Espero que te funcione
Hola, gracias por el aporte. Te consulto, si en la lista de correos hay uno que está mal escrito y no es posible enviar a este correo, los demás destinatarios debajo de este ya no reciben el correo? es decir, si hay un correo que está mal escrito, el envío masivo se detiene ahí? y qué se podría hacer al respecto?. Gracias
Si Lucía, en principio lo debería mandar todo. Si el mail no existe te devolverá un mensaje de error. Pd: No he probado a poner un correo sin @, pero en todos los demás casos debería funcionar
Buenas tardes Muchas gracias por el instuctivo, muy bueno y practico, tengo una pregunta, si yo no quiero enviar adjunto como hago para que no me genere conflicto con la macro. Gracias
@@johanmanuelpaezpena2100 Buen apunte! Podrías poner un condicional que si la celda está en blanco que no se adjunte el archivo. También podrías comprobar si el archivo existe dentro de tu equipo antes de enviarlo
@@johanmanuelpaezpena2100 Junto antes de la línea pones un if que evalúe la línea. Si tiene datos que ponga la línea de código como la tienes y si no que pase a la siguiente línea
excelente vídeo muchas gracias. Estoy trabajando con una mac y en la °referencia° no me aparece °Microoft 2000 CDO en las opciones, ¿Qué puedo hacer? gracias por su tiempo excelente canal
Hola Juan José, creo que google pone problemas al agregar imágenes en este tipo de envíos automatizados. La solución podría estar en subir previamente la imagen a un servidor público y adjuntar la url de esta. Podría ser con un código similar a este:
Hola Jose, si quieres mandar siempre el mismo correo se simplifica. Referencialo todo a la fila que quieras y di que mande siempre eso y lo repita cada hora. ¿Cómo? Supongamos que quieres mandar correos durante un día seguido 1 vez por hora. For i=1 to 24 ... .To = Range("A2").Value .CC = Range("B2").Value .... Y después, y antes de que se acabe el For, métele esta instrucción Application.Wait (Now + TimeValue("01:00:00"))
Hola ha sido un excelente video, me funcionaba muy bien hasta hace algunos días, ayer intenté enviar correos usando la macro y me corre sin ningún problema, pero no envía los correos. Me podrías ayudar? Qué podría estar pasando?
Revisa habilitar aplicaciones poco seguras. Lo mismo se desmarca con el tiempo. Revisa si has cambiado la contraseña o el correo o has insertado alguna columna o fila y la contraseña no está en el mismo sitio Ejecuta tb con la opción paso por paso (F8) y comprueba dónde podría estar el error
@@AprendizdeExcel He revisado todas las observaciones que comentas, pero todas están bien. Asimismo, he apretado F8 en cada pasa y no me da ningún error :/
Al ejecutarlo paso por paso con el F8 puedes ponerte encima de cada valor y saber qué valores está tomando Así sabes que le asigna a las variables, sabes si se salta un paso o lo que sea. Otra parte de confirmar es quitar esta línea: On Error Resume Next
Hola, buena tarde. Tu video me parece fenomenal. Intenté aplicar lo que nos enseñas en excel para MAC pero da error. Dice que es error de complicación: No se ha definido el tipo definido por el usuario. Creo que esto se deriva de que en Referencias no me salen las opciones que aquí te aparecen ¿qué puedo hacer?
Gracias por responder. Finalmente tuve que usar una computadora con Windows porque me urgía hacer un envío masivo de correos. Tu explicación y el ejemplo que nos dejaste en el mensaje anclando me funcionó perfecto. Mil gracias
Buenos días, necesito apoyo ya que he realizado todo como indica y lo de la seguridad del video siguiente, sin embargo activar el botón de envío me sale que no he definito sub o function que debo hacer?
Aprendiz, si requiero que la firma tenga varios renglones, pero que no queden tan distantes unos de otros, sino unidos como las firmas corporativas. Actualmente me queda: Sebastián Franco Corredor Seguros LA. Porque lo que hice fue agregar otra línea del mismo código: .HTMLBody = "" & Range("E" & I).Value & "" & _ "" & "Sebastián Franco" & "" & _ "" & "Corredor" & "" & _ Pero necesito que quede así: Sebastián Franco Corredor Seguros LA. ¿Qué debo hacer? Gracias.
Juan, gracias por pasarte por el canal. El salto de línea es br (el párrafo es p). Entonces, si cambias los párrafos por saltos de línea podría ser así: .HTMLBody = "" & Range("E" & I).Value & "" & _ "" & "Sebastián Franco" & "" & _ "" & "Corredor" & "" Prueba y me dices
Hola, me quedo en el 2:27 , no sé porque me sale error, escribo exactamente lo mismo, pero pone que hay problema con esta fórmula.... alguien le ha pasado?
No sabes cómo me ha ayudado este correo para mandar reportes personalizados en mi trabajo. Combiné esto con crear carpetas con macros y generar PDF con marcos, luego solo conecté mi excel a mi base de datos en SQL y mando lo que necesito. Ahora solo tengo una duda que no he conseguido solucionar aunque ya intenté varias cosas. Entiendo que manda un solo correo al destinatario de A2 y hacia abajo, pero qué pasa si necesito enviar ese mismo mail a 10 personas? si pongo las 10 direcciones desde A2 hasta A11 va a mandar 10 correos diferentes, pero hay forma de mandar el mismo correo a 10 destinatarios? de antemano te agradezco mucho tu ayuda!!
Genial! Me alegro que te haya funcionado Si siempre es el mismo correo, en vez de variable lo puedes dejar fijo todo lo que no sea el correo, es decir: .Subject = Range("D2").Value .TextBody = Range("E2").Value etc
Excelente buen video tengo problemas con los archivos adjuntos me sale error en esta linea .AddAttachment (Range("F" & i).Value) y todo esta tal cual el video sin archivo adjunto envía sin problemas los correos. Estoy enviado un archivo pdf
Hola, en caso de que sean muchos correos y por ende adjuntos, como haces para organizarlos de tal forma que queden la misma fila el correo y el adjunto que le corresponde
Hola Santiago. En la base de datos deben coincidir en fila los datos de mail, asunto, cuerpo y adjunto. Imagino que tienes una lista de mail en tu base de datos y tendrás unos adjuntos. Si no los tienes correlacionados en la base de datos, busca si tienes algún patrón de texto y extrae la información con fórmulas de texto para poder enlazar adjuntos con mails
Hola! Muchísimas gracias por este tutorial tan bien explicado. Lo he intentado y me funciona, pero es cierto que cuando pongo un número de destinatarios amplio (+100), no se envían todos, llega un punto en que se corta, y no sé que puede estar pasando. Otra duda es que en algunos, aún sin incluir archivo adjunto, se envía algo titulado "noname", ubicado en mi carpeta de descargas... un poco raro esto. Sabríais ayudarme en ambas cuestiones? Muchas gracias de antemano!
Hola Leticia, gracias por pasarte por el canal, probar el ejercicio y comentarlo. Partiendo que no se me ha reproducido nunca ese problema al no hacer envíos a tantos emails a la vez, voy a intentar razonar cuál puede ser el problema y buscar una solución. Excel procesa la información para mandar el correo mucho más rápido que gmail. Excel trabaja en local, no se cae la red, ni el servidor, ni tiene porque subir archivos Si gmail no la procesa se le puede acumular. Supongamos que gmail solo puede mandar un mail a la vez, tienes mala conexión y Excel le manda mandar 10... Se queda enviando el mail 1 se quedan sin enviar 9. Aunque la conexión sea normal y no tengas ningún microcorte es posible que a partir de un número de mails a gmail le cueste. ¿Cómo podemos solucionarlo? Podemos hacer varias macros iguales y que una mande los 50 primeros correos, otra los segundos 50, otra... Digo 50, como si quieres decir 25. Sin embargo, quizás sea más cómodo que pongas una instrucción que retrase de forma intencionada los mails. Que mande uno, que se pare 2 segundos y que mande el siguiente. Para eso justo antes de que acabe el For le metes la instrucción (Entre el With y el Next). Algo así: -------------- End With Application.Wait (Now + TimeValue("00:00:02")) Next ----------------- Pruébalo y si funciona me dices para el siguiente que le ocurra
@@AprendizdeExcel tenia el mismo problema. tengo una carga de correos de 4500 y me toco ir enviando de 77 en cada correo enviado. Ahora poniendole ese delay ya no me dio problema (solo el del limite de 500 mensajes por dia claro), enviando desde otro correo lo soluciono de forma temporal. Por cierto, si sabes alguna forma de evitar ese limite de los 500 mensajes quedo atengo. Saludos crack, me salvaste la vida
Hola!! buen día!! al ejecutar el código me aparece un mensaje que dice "Error de compilación: No se ha definido el tipo definido por el usuario" Qué podría hacer??
Qué tal "Aprendiz de Excel". Te comento que no me corre la macro, está habilitado la librería y di acceso a aplicaciones no seguras en el correo. Sin embargo al ejecutar la macro paso a paso no me indica ningún error de compilación, pero los correos no los manda.
Hola Alan, gracias por comentar, vamos a probar dos cosas para ver qué puede estar fallando, primero quita la línea que dice On error resume Next, por si eso nos da alguna pista del problema. Segundo, en depuración pasa todo el código con F8 y ve observando lo que hace poniéndote encima de la línea anterior que marca (lo que ya está hecho), de esta forma podremos ver si coge bien tu mail, tu contraseña, los destinatarios, etc
@@AprendizdeExcel Gracias por atender el mensaje, era un error en el código del .ITEM. Por otro lado quisiera consultarte, porqué al enviar los correos masivos no se inserta la firma que tengo preconfigurada en Gmail; o bien, como agregar la firma si es una imagen dentro del cuerpo del correo.
Hola Alan, gracias por contestar. ¿Cuál es el problema del .item? ¿La clave y el usuario que se mete o algo que está mal explicado o colgado en el código? Para la firma lo mejor es que incluyas la firma directamente dentro del código Te aconsejo que cambies la línea de body por esta: .HTMLBody = "" & Range("E" & i).Value & "" & "Tu nombre" & "" & "Tu dirección" & "" & "Tu teléfono" Los son saltos de línea, añade más o quita en función de lo que quieras. La previa al teléfono es negrita. Quítalo si no lo quieres o ponlo delante del nombre o dirección Si quieres una línea más copia el patrón Si quieres jugar con colores y tamaños prueba con esto: "This text is boldFont Color" & _ "New line with underlineFont size" Para adjuntar una imagen yo no he sido capaz de hacerlo en gmail. Sorry
hola que tal, podia enviar los correos super bien, pero ahora me da un error en tiempo de ejecución y cuando pongo depurar para corregir me marca de amarillo esto .AddAttachment (Range("G" & i).Value), como lo puedo arreglar
Está todo bien con el hipervinculo, lo pincho aparece el archivo… pero sigue apareciendo ese error… lo hice con la fórmula de hipervinculo y con la macro que hiciste y es el mismo error
Hola Samuel, entiendo que tienes una base de datos de e-mails que quieres mandar y que con algún criterio los quieres mandar. Establece el criterio que quieras y trasladalo de tu base de datos con un índice, buscarv o lo que sea
@@AprendizdeExcel creo que no me has entendido de una base de datos de email quiero seleccionar uno y enviarlo ósea entre cien solo enviar uno solo, para no tener que borra la base datos cada vez que voy a enviar uno GRACIAS
@@samuelgonzalez4065 Tienes razón, no te he entendido antes y sigo sin hacerlo ahora. Entiendo que tienes una base de datos y enviar uno. Pues en una columna pon un 1 y con cargo a eso que se cargue en la hoja de envíos. También puedes leer directamente desde esa base de datos y decirle qué fila quieres que se mande
Hola, hice y copie todo igual, pero al momento de activar el botón, no envía los correos como si no se activara la macro, pero si corro cada función con F8, ahí si envía correo por correo, no marca ningún error
Hola Eduardo, gracias por comentar. ¿Si ejecutas con F8 lo ejecuta todo sin problemas y si la lanzas por separado no? ¿o solo te falla el botón? Desde la cinta de programador se ejecuta bien la macro o tampoco?
Hola Laura Vanessa, creo que Google pone problemas al agregar imágenes en este tipo de envíos automatizados. La solución podría estar en subir previamente la imagen a un servidor público y adjuntar la url de esta. Podría ser con un código similar a este:
Desconozco si tienes alguna limitación en tu servidor que te impida hacerlo Puedes probar a ponerle un retardo de algunos segundos por cada mail o cada tantos mails con la instrucción Application.Wait(Now + TimeValue(“00:00:05”)
hola lo primero te encontre tus tutoriales de rebote y decirte y agradecer lo bien que lo explicas, y quisiera pedirte ayuda dado que seguí todo este tutorial al pie de la letra, me cree un gmail habilitado para app a 3 todo como tú, pero no envia email, y la macro no marca error. que podria ser, gracias de antemano
Hola Antonio. Gracias por tu comentario. Prueba varias cosas, primero ejecuta con el modo paso a paso (F8) y mira y entiende qué hace en cada paso (descubrirás rápido el error). Además retira esta instrucción para que te cante algún error: On Error Resume Next
Entra al codigo y fijate que te dice con el mouse encima de "CorreoOrigen" a mi me figuraba mi contraseña y en ClaveCorreo vacio, lo que hice fue colocar los valores Range ("i2").Value en vez de utilizar CorreoOrigen y pude enviar los email sin problemas. Saludos PD: Excelente video y explicacion, ahora estoy intentando adjuntar mas de 1 PDF para enviar, alguna solucion simple? Yo envio recibos de sueldo y algunos los tengo hasta en 5pdf y otros en 1 solo. Desde ya muchas gracias
Hola Captain, gracias por contestar a Antonio. Para los archivos adjuntos, ¿has probado poner las url en otras columnas y añadir la línea cambiando el código?
Hola excelente video lo estoy poniendo en practica pero me da un error al ejecutarlo y no se como solucinarlo. El error es "1004" en tiempo de ejecución: error en el metodo de "Range de objeto:Global"
Hola Carlos, en el comentario fijado está. Si no puedes verlo te lo repito Sub EnviarCorreo() 'Aprendiz de Excel 'ruclips.net/channel/UCvbrUg7GQgg_E_MNUY3RnyA Dim Email As CDO.Message Sheets("Mails").Select CorreoOrigen = Range("i3").Value ClaveCorreo = Range("i4").Value For i = 2 To Range("A" & Rows.Count).End(xlUp).Row Set Email = New CDO.Message 'myaccount.google.com/lesssecureapps Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com" Email.Configuration.Fields(cdoSendUsingMethod) = 2 With Email.Configuration.Fields .Item("schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 .Item("schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1) .Item("schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 .Item("schemas.microsoft.com/cdo/configuration/sendusername") = CorreoOrigen .Item("schemas.microsoft.com/cdo/configuration/sendpassword") = ClaveCorreo End With With Email .From = CorreoOrigen .To = Range("A" & i).Value .CC = Range("B" & i).Value .BCC = Range("C" & i).Value .Subject = Range("D" & i).Value .TextBody = Range("E" & i).Value .Attachments.DeleteAll .AddAttachment (Range("F" & i).Value) .Configuration.Fields.Update On Error Resume Next .Send End With Next End Sub
La forma más sencilla quizás sea que lo pongas en una columna la fecha y hora de cada mail y que al correr la macro compare sí ha llegado la hora de envío, lo mande y lo marque como enviado
@@AprendizdeExcel Es buena, pero lo quiero hacer como lo hace gmail, por servidor, sin necesitar tener la computadora prendida, estoy abierto a soluciones mediante python en caso de que con vba no se pueda, también me parece bien que lo haga en 2do plano mientras que no esté el archivo abierto, en caso de que lo 1ero no sea posible, siempre y cuando también anote la hora en que se envió el mensaje, es decir, debería correr la macro que ya tengo preparada, abriendo excel en 2do plano "no visible", el tema es que no envíe el mensaje en días de fin de semana, o feriados, o en horarios no oportunos, como el rango por fuera de 6 am a 6 pm en este caso en particular.
Hola Teresa, con ese error te marca que no puede adjuntar el archivo. Has utilizado la variable "q" aposta o es un error? Es posible que no estés definiendo bien el adjunto? Has probado a ejecutar paso a paso?
He hecho la macro siguiendo las indicaciones del video y no me funciona, es como si quedase en un bucle. Podría enviársela para que la revisara. Muchas gracias
Hola, buena tarde. En la opción de REFERENCIAS a mi no me aparecen todas las opciones que tú tienes. Yo estoy tratando de implementar tus recomendaciones en excel para Mac pero me sale error ¿cómo puedo adaptar tus recomendaciones?
Lo siento Pamela, no trabajo con Mac, no se qué problema de incompatibilidades te puede estar dando. ¿Has probado a ejecutar la macro con paso a paso (F8)?
¿A qué te refieres? ¿A combinar celdas dentro del cuerpo? Revisa este vídeo complementario, que quizás tenga lo que necesitas para meter varis celdas y formato ruclips.net/video/ULTbreSw2bU/видео.html
Amigo si me salio todo bien, pero al momento de que quiero mandar archivos adjuntos me da un error y dice que Las siguentes caracteristicas no se pueden guardar en libros sin macros "Proyecto de VB"
@@AprendizdeExcel Lo hace cuando intento guardar el excel Pero solo me sucede cuando quiero mandar archivos pdf adjuntos con la ubicación Si no pongo la ubicación de los archivos si me manda los correos
Si quieres guardar el archivo debe ser habilitado con macros o perderás los módulos (los códigos que tengas dentro) Que te pida guardarlos cuando envía los correos no tiene sentido. No tiene que ver. Que los pdf tengan ubicación no entiendo porque te dan ese error
Hola buen día, gracias por tus video de verdad que me sirven bastante, pero necesito de tu amable ayuda copié la macro tal cual pero pero me genera error en la parte donde está . AddAttachment (Range("F" & i).value) ya le he borrado y le he uelto a escribir pero no me deja y siempre me resalta en amarillo esa parte por favor ayúdame por favor, Agradezco de tu amable ayuda que debo hacer?
@@AprendizdeExcel excelente muchas gracias 👌 por tu amabilidad perfecto ya me funciono no estaba tomando el adjunto gracias por tu ayuda mil bendiciones 🙏
Que tal buen día, copie la macro que colocaste y complete los items, sin embargo no se envían los mails, me marca un error en .send me puedes ayudar por favor.
Ya lo logre mi estimado, solo que me di cuenta que ya cuando va a terminar de enviar mi base, marca un error de tiempo, eso a que se debe y otra cosa, cómo puedo agregar el nombre para personalizar más el correo. Muy buenos tus aportes muchas gracias.
Hola Álex, gracias por contestar y me alegro que te haya funcionado. Me he dado cuenta que la parte de Item la recorta al pegarla. Me pasa con algunas macros. La voy a intentar pegar en el comentario fijado
Error de tiempo no se a qué te refieres. Es la primera que me dicen eso. Lo mismo tarda Gmail en responder y hay que poner un retraso. Luego te mando un código antes de enviar a ver si es eso
El código que te decía esta mañana podría ser algo así que yo colocaría antes del send por si fuera un problema de tu conexión Application.Wait (Now + TimeValue("00:00:05")) *Los 5 son que espere 5 segundos antes de enviarse
Buenos dias tengo problemas la utice la macro por 5 meses pero este mes no me quiere funcionar y caundo doy F8 me da error Sheets("Mails").Select me dice intervalo fuera de tiempo. Alquien me puede ayudar
Es un cambio en las políticas de Gmail desde el 30 de mayo. Hicimos otro video en el que explicaba como resolverlo ruclips.net/video/CL5w3sW72UI/видео.html
@@AprendizdeExcel Me rindo he hecho de todo coloque todo tal cual, dure 5 meses felices trabajando. Enviando 5000 correos en una semana pero ya no me funciona y enviarlos manualmente de uno en uno me voy tardar mas de loq ue la compañia me exige. Muchas gracias pero nose porque no envia.
Hola muchas gracias por tu video pero al realizarlo me sale "no se puede ejecutar la macro. Puede que la macro no esté disponible en este libro o que se hayan deshabilitado todas las macros"
Tu método me funciono muy bien!! Pero quisiera saber cómo hacer para que a las personas que le llegue el correo, le salga en su bandeja de entrada “de: Daniela H” ósea un nombre. Porque hice la prueba con correos “de prueba” y me sale el correo desde donde yo los estoy enviando tipo: “De: ejemplo@g….”. Como cambio eso? Le agradecería muchísimo su ayuda!
Hola Daniela, RUclips a veces bloquea comentarios. Desconozco porque, pero no los pasa por SPAM. Elimina directamente. Quizás sea por tener un correo, esos los bloquea todos.
Hola! muy interesante el vídeo. Acabo de probarlo y no me funciona.. no entiendo porqué, he seguido todos los pasos al pie de la letra. Simplemente al darle al botón se carga y no hace nada, alguna idea?
@@AprendizdeExcel Una duda, existe un limite de lineas por enviar? He intentando enviar 500 y solo ha enviado unos 90, he repetido la macro e igual. Y ahora una tercera vez y no envia nada. Alguna idea? La macro está corriendo, he puesto un mensaje al final del todo para saber cuando termina. Muchas gracias
Hola Ricardo, nunca he tenido la necesidad de mandar ese volumen de correos, a parte de cosas que ya habrás descartado como conexión a internet, tamaño de adjuntos y demás, es posible que gmail te saque porque te considere un ataque por denegación o similar. Es decir, que 90 puedan ser el límite de correos que puedas mandar a la velocidad que consigue mandar la orden Excel ¿Cómo podemos solucionarlo? Podemos hacer varias macros iguales y que una mande los 50 primeros correos, otra los segundos 50, otra... Digo 50, como si quieres decir 90 ó 25 (yo no apuraría). Sin embargo, quizás sea más cómodo que pongas una instrucción que retrase de forma intencionada los mails. Que mande uno, que se pare 2 segundos y que mande el siguiente. Para eso justo antes de que acabe el For le metes la instrucción (Entre el With y el Next). Algo así: -------------- End With Application.Wait (Now + TimeValue("00:00:02")) Next ----------------- También puedes decirle que cada 50 mails pare 5 minutos y continúe con el 51. Para eso metes una variable que vaya sumando mails y cuando llegue al número que digas se pare. Pruébalo y si funciona me dices para el siguiente que le ocurra
Hola Juan, creo que Google pone problemas al agregar imágenes en este tipo de envíos automatizados. La solución podría estar en subir previamente la imagen a un servidor público y adjuntar la url de esta. Podría ser con un código similar a este:
Buenas tardes trato de hacer punto a punto pero me sale un error .AddAttachment (Range("F" & i).Value) no entiendo me sale un sombreado de amarillo y está todo bien, no entiendo ):
¿El archivo lo puede adjuntar? ¿Está abierto? Prueba en el menú depuración ejecutar paso por paso (F8) y observa el valor que te da en esa variable. Lo mismo te lo adjunta de otra hoja o de otra columna
Hola Juan, gracias por comentar Para la firma lo mejor es que incluyas la firma directamente dentro del código Te aconsejo que cambies la línea de body por esta: .HTMLBody = "" & Range("E" & i).Value & "" & "Tu nombre" & "" & "Tu dirección" & "" & "Tu teléfono" Los son saltos de línea, añade más o quita en función de lo que quieras. La previa al teléfono es negrita. Quítalo si no lo quieres o ponlo delante del nombre o dirección Si quieres una línea más copia el patrón Si quieres jugar con colores y tamaños prueba con esto: "This text is boldFont Color" & _ "New line with underlineFont size"
Si le das a leer más está todo el código. Te lo dejo por aquí: Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com" Email.Configuration.Fields(cdoSendUsingMethod) = 2 With Email.Configuration.Fields .Item("schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 .Item("schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1) .Item("schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 .Item("schemas.microsoft.com/cdo/configuration/sendusername") = CorreoOrigen .Item("schemas.microsoft.com/cdo/configuration/sendpassword") = ClaveCorreo
@@AprendizdeExcel Amigo disculpa, una ultima pregunta, me gustaría hacer esto pero desde WEBMAIL, cual sería el código para establecer conexión al código
@@AprendizdeExcel, le di a habilitar todas las macros, a eso te refieres con las librerias ? Cuando cierro el mensaje se pinta la primera linea Sub EnviarCorreo()) de amarillo pero se selecciona la segunda linera (Dim Email As CDO.Message), gracias.
Me pueden ayudar, me había estado funcionando magnifico esta rutina pero ya no la puedo utilizar me marca "se ha producido un error 9 en tiempo de ejecución subíndice fuera del intervalo" alguien o el autor me pueden ayudar?
Hola María, si lo has hecho todo igual paso por paso y no se envían no se lo que puede estar fallando. Por si no fuera todo igual yo comprobaría lo siguiente: Primero ejecutar la macro en paso por paso (F8) para ver qué hace en cada paso y si algo no te cuadra. Aquí puedes comprobar que las variables de correo, contraseña, destinatarios, etc las coge bien. Puedes haberle indicado mal la hoja, la fila o la columna. También puedes probar a retirar esta línea para identificar el problema On Error Resume Next Y por último comprobaría si has permitido el acceso a aplicaciones poco seguras
Si no te da error no será problema de librería. No tengo claro lo de las aplicaciones de terceros. Yo lo analizaría con la compilación paso a paso (F8), para ver dónde está dando el fallo y así se podrá ver cuál es el problema Lo mismo no tienes el send, o no coge los mails de la columna que debe, o de la hoja
@@AprendizdeExcel Ya lo encontré, copie igual al que tienes aquí fijado y este no tienen toda la información del código, la parte de .Item esta incompleta, revise nuevamente el video e hice el código completo desde ahí. Gracias por atenderme y que buen material es el que produces en este canal, te has ganado un seguidor.
Quiero enviar un archivo con hipervínculos a archivos kmz. Pero al enviarlo supongo que la ruta del hipervínculo no es la misma. Como hago para que a cualquiera que se lo envíe el hipervínculo funcione ?
Hola que tal la tabla me va muy bien pero tengo un problema a la hora de adjuntar una imagen me marca error en la macros, me podría orientar en decirme el por que no funciona "se ha producido un error "-2147221020(800401e4)" en tiempo de ejecución: Sintaxis no valida.
El 30 de mayo de 2022 Google actualizó los requisitos de seguridad para entrar desde aplicaciones de terceros. Hemos hecho un vídeo que complementa a este en el que se explica cómo hacer las modificaciones de seguridad:
ruclips.net/video/CL5w3sW72UI/видео.html
Si te ha gustado este vídeo puedes ver más en el Curso de Excel avanzado 🔥🔥🔥
cutt.ly/JnHy9yG
El código macro
-----------------
Sub EnviarCorreo()
'Aprendiz de Excel
'ruclips.net/channel/UCvbrUg7GQgg_E_MNUY3RnyA
Dim Email As CDO.Message
Sheets("Mails").Select
CorreoOrigen = Range("i3").Value
ClaveCorreo = Range("i4").Value
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
Set Email = New CDO.Message
'myaccount.google.com/lesssecureapps
Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item("schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1)
.Item("schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Item("schemas.microsoft.com/cdo/configuration/sendusername") = CorreoOrigen
.Item("schemas.microsoft.com/cdo/configuration/sendpassword") = ClaveCorreo
End With
With Email
.From = CorreoOrigen
.To = Range("A" & i).Value
.CC = Range("B" & i).Value
.BCC = Range("C" & i).Value
.Subject = Range("D" & i).Value
.TextBody = Range("E" & i).Value
.Attachments.DeleteAll
.AddAttachment (Range("F" & i).Value)
.Configuration.Fields.Update
On Error Resume Next
.Send
End With
Next
End Sub
---------------
Lo tengo! Tuve que mirar el video como 3 veces, pero ya entendí la cuestión. Muchas gracias.
Genial!!
Si te ha gustado este vídeo puedes ver más en el Curso de Excel avanzado 🔥🔥🔥
cutt.ly/JnHy9yG
El código macro
-----------------
Sub EnviarCorreo()
'Aprendiz de Excel
'ruclips.net/channel/UCvbrUg7GQgg_E_MNUY3RnyA
Dim Email As CDO.Message
Sheets("Mails").Select
CorreoOrigen = Range("i3").Value
ClaveCorreo = Range("i4").Value
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
Set Email = New CDO.Message
'myaccount.google.com/lesssecureapps
Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item("schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1)
.Item("schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Item("schemas.microsoft.com/cdo/configuration/sendusername") = CorreoOrigen
.Item("schemas.microsoft.com/cdo/configuration/sendpassword") = ClaveCorreo
End With
With Email
.From = CorreoOrigen
.To = Range("A" & i).Value
.CC = Range("B" & i).Value
.BCC = Range("C" & i).Value
.Subject = Range("D" & i).Value
.TextBody = Range("E" & i).Value
.Attachments.DeleteAll
.AddAttachment (Range("F" & i).Value)
.Configuration.Fields.Update
On Error Resume Next
.Send
End With
Next
End Sub
---------------
Hola!! He escrito varios comments abajo con mi consulta y nose porque no se publican!😭😭😭
Amigo esa linea de codigo
.AddAttachment (Range("F" & i).Value)
Lleva el signo "="? o no?
Otra pregunta, para enviar solo un pdf que tengo guardado como ruta, solo eliminaría el For y el Next del codigo verdad?
En verdad le agradezco un montón por esta enseñanza. Lo he hecho paso a paso como usted indico y me resulto de perfectamente. No me cansare de agradecerle ya que no ubicaba otras opciones que no sean aplicaciones de pago. Un abrazo desde ya un nuevo suscriptor de Perú.
Me alegro un montón que te haya funcionado Pablo.
Gracias por tu comentario. Dan ánimos para seguir aportando valor 😉
Hola estimado amigo. Le agradezco de antemano el tiempo que ha dedicado a realizar el presente video, con el propósito de enseñarnos tus conocimientos, y espero poder aprender a hacerlo. Ahora es solo buscar la información a pegar y listo. Tienes mi like y mi suscripción.
Un abrazo
muchas gracias por compartir me sirvio un monton para un trabajo que tenia que hacer. Saludos desde Jujuy - Argentina
Me alegro!!
Biennnnn, excelente amigo, me salvaste la vida, pues encontré lo que buscaba hace mucho tiempo investigando y al fin. 10/10 gracias.
Muchísimas gracias Daniel!
Comentarios como los tuyos son los que nos animan a seguir compartiendo contenidos
Salu2
@@AprendizdeExcel Hola amigo, espero que siga creciendo las visitas en tu canal. Debo hacerte una pregunta ¿Cómo puedo hacer para configurar un correo de webmail en esta misma hoja de macro?
No se exactamente a qué te refieres con un correo de webmail, pero mediante Outlook preparamos otros vídeo que quizás es lo que necesites:
ruclips.net/video/4xZWk9wgi2I/видео.html
Clarísimo y perfectamente explicado MIL GRACIAS !!!! ¿Tendrías un tutorial para lo contrario? es decir para volcar los correos a Excel.
Your dedication, passion, and expertise shine through every video, and I am truly grateful for the valuable knowledge and entertainment you provide. Whether it's informative tutorials, engaging vlogs, or inspiring storytelling, your content has had a profound impact on me and many others in your audience 👏🏻👏🏻
Con el "CTRL+V" y luego "CTRL y V" me compraste. Que genialidad y yo siempre pegando como valores. jajajaja, Excelente profe.
🙌🙌
Excelente tutorial. Funciona todo perfecto. Gracias!
Gracias por tu gran apoyo. Felicidades.
Gracias a ti por pasarte por el canal y comentar John.
Un saludo!
Primero que nada agradecerte por este más que interesante video para este tarea rutinaria y super importante. Me llamo la atención la parte donde pulsas imprimir factura y te genera los archivos PDF de manera automática.
Tendrás el video que explica como hacer eso, hace un tiempo necesite algo así y no pille como hacerlo.
Muchas Gracias
El vídeo de las facturas es este:
ruclips.net/video/OsASXikKbzU/видео.html
@@AprendizdeExcel Agradecido. Ya me pongo con el video para hacer uso de esta herramienta 👍
👍
Muy interesante su video y gracias por enseñarnos sus conocimientos así podría regalar el archivo MilGracias 🙏
Gracias a ti por pasarte y comentar ;)
@@AprendizdeExcel Regalanos el archivos por que la verdad segui todos los pasos y no me deja
Hola excelente video me funciono muy bien solo tengo una pregunta si cuentas con un correo Gmail que contiene el dominio de la empresa se tiene que agregar algo extra ?
Hola! Me gusto mucho su video lo pude implementar y me funciona de forma excelente, tengo la siguiente duda eso si, como puedo implementar mas texto en el cuerpo del correo? Cada celda de excel solo me permite un maximo de 255 caracteres , entones estaba pensando que quizas se podria escribir el cuerpo en el código pero no se como hacerlo y de la misma forma , a través del código que se personalice cada correo con el nombre de la persona, nos podria indicar como hacerlo si no es molestia? Muchas gracias ❤
Puedes poner texto en el código o poner varias celdas.
Te recomiendo que veas el segundo vídeo de la serie "Enviar EMAILS MASIVOS 📧 con FIRMA 📝, IMÁGENES 🖼, LINKS y ADJUNTOS 📎 con Excel":
ruclips.net/video/ULTbreSw2bU/видео.html
Hola @AprendizdeExcel, saludos desde Venezuela. Tengo una duda: ¿cómo debo programar para enviar 4 o más adjuntos en el mismo correo?
AMigo nunca consegui hacer nada en excel, pero tu video fue tan claro que mismo yo no sabendo usar excel y no siendo hispano hablante entendi todo y consegui hacer envios de correos, pero tengo una duda como guardo los codigos para poder usarlos mas adelante?
Gracias Tiago!
Debes grabarlo como Libro de Excel habilitado para macros (xlsm)
Excelente video. Muchas gracias colega... digo que el aprendiz soy yo ☺️. Sería interesante que nos muestres en un nuevo vídeo, cómo se podría enviar con este método CDO, un rango de celdas o una hoja activa en el cuerpo de texto como HTML. ¿Podrías? Gracias.
Lo apuntamos en el debe 😉
Hola muchas gracias me ha sido muy útil, quiero saber si se puedes hacer el mismo proceso con más de un adjunto
Hola Fabian, gracias por comentar y por suscribirte 😉
Si quieres varios adjuntos lo más sencillo es añadir tantas líneas de adjuntos como quieras.
Siguiendo la estructura del ejemplo del vídeo en la columna F tienes el adjunto 1 y en la G el adjunto 2. La línea a añadir sería esta:
.AddAttachment (Range("G" & i).Value)
Y esa parte de la macro te podría quedar así:
With Email
.From = CorreoOrigen
.To = Range("A" & i).Value
.CC = Range("B" & i).Value
.BCC = Range("C" & i).Value
.Subject = Range("D" & i).Value
.TextBody = Range("E" & i).Value
.Attachments.DeleteAll
.AddAttachment (Range("F" & i).Value)
.AddAttachment (Range("G" & i).Value)
.Configuration.Fields.Update
On Error Resume Next
Gracias por tu video, me sirvio mucho, queria consultarte si hay forma de agregar firma en los mails masivos. (GMAIL) gracias!
con imagen seria la firma
La solución podría estar en subir previamente la imagen a un servidor público y adjuntar la url de esta.
Podría ser con un código similar a este:
En un código HTMLBody con formatos sería algo así:
.HTMLBody = "" & "" & Range("E" & i).Value & "" & _
"" & "Aprendiz de Excel" & "" & _
"" & "Calle Desengaño 23" & " " & _
"RUclips Aprendiz" & ""
Hola! muchas gracias por el gran video y explicación, es posible lo siguiente:
1) Añadir una imagen personalizada al cuerpo del correo (no adjunta)
2)En vez de enviar directamente los correos dejarlos como borradores
Muchas gracias!!
Para añadir imágenes, links, o lo que necesites, te recomiendo ver este vídeo:
ruclips.net/video/E6kcXoTWEN8/видео.html
El protocolo CDO no permite la opción de guardar en borradores.
Deberías descargar la API de Gmail para eso. El proceso es bastante más complejo
@@AprendizdeExcel muchas gracias por la respuesta, pero sería posible incorporar una imagen personalizada en el cuerpo de cada correo?
Aprendiz, eres el mejor, de antemano muchas gracias. Quisiera saber si tienes un instructivo para el programa que mencionas que convierte una lista en varios archivos en PDF, el de las facturas que mencionas.
Quedo atento.
Muchas gracias.
Exportar a PDF:
ruclips.net/video/UgNzxwO9p_M/видео.html
Exportar a PDF múltiples ficheros:
ruclips.net/video/OsASXikKbzU/видео.html
@@AprendizdeExcel Creo que no me hice entender muy bien. Me refiero al ejemplo que citas alrededor del 1:30 en este video, con el programa del administrador con una comunidad de propietarios, y cómo se generan automáticamente n facturas archivos PDF, "Imprimir facturas".
Quedo atento.
Gracias.
Creo que si te explicaste bien, pero yo no.
El ejemplo que cito en el minuto 1:30 es el segundo vídeo que te enlazaba (ambos son de la misma serie)
Básicamente es un buscarv sobre una base de datos de clientes y facturas y las saca todas a la vez
ruclips.net/video/OsASXikKbzU/видео.html
Muchas gracias por el video, una pregunta, en caso de querer enviar solo un archivo pdf a un solo cliente, que tengo que modificar? Gracias de antemano
Hola cómo puedo enviar para la configuración de gmail, cuando tengo verificación en dos pasos ? Gracias
Hola, gracias por el tutorial
Ya pude gracias jajajaj
Genial!
Me alegro que te haya funcionado 😉
Excelente video!
Sabes si hay una manera de agregar screenshots pero que no se vea como un archivo adjunto, que literal se vea en el cuerpo del correo?
Me funcionó perfecto! muchas gracias!!
Por no dejar, cómo tendría que hacer si quiero enviar 2 archivos adjuntos distintos?
En realidad el caso es que son 2 PDF por fila: 1 PDF genérico que es el mismo para todos (resumen de gastos generales), + uno distinto para cada fila (gasto por propietario).
Intenté separando las rutas por punto y coma, pero no funcionó.
Tampoco me funcionó poner la 2da ruta en la celda del lado e indicándole el rango completo F:G a la macro.
Gracias por tu comentario Irina.
Añade tantas líneas de código como necesites. Los adjuntos se van acumulando. Sería algo así:
-----------
.Attachments.DeleteAll
.AddAttachment (Range("F" & i).Value)
.AddAttachment (Range("G" & i).Value)
.Configuration.Fields.Update
----------
Si vas a tener un adjunto siempre fijo lo podrías dejar bloqueado, por ejemplo en G1. Eso te ahorrará arrastrar el segundo adjunto en todos los archivos.
Espero que te funcione
@@AprendizdeExcel entendido! muchas gracias por la respuesta
Hola, gracias por el aporte. Te consulto, si en la lista de correos hay uno que está mal escrito y no es posible enviar a este correo, los demás destinatarios debajo de este ya no reciben el correo? es decir, si hay un correo que está mal escrito, el envío masivo se detiene ahí? y qué se podría hacer al respecto?. Gracias
Si Lucía, en principio lo debería mandar todo.
Si el mail no existe te devolverá un mensaje de error.
Pd: No he probado a poner un correo sin @, pero en todos los demás casos debería funcionar
Buenas tardes
Muchas gracias por el instuctivo, muy bueno y practico, tengo una pregunta, si yo no quiero enviar adjunto como hago para que no me genere conflicto con la macro. Gracias
Quita la línea o deja la columna sin adjuntos.
No se enviará el mail si la línea tiene un adjunto mal escrito (no existe en tu ordenador)
@@AprendizdeExcel lo intente pero no se ejecutaba la macro y deje el campo vacio, pero llega un docuemnto en formato 7-zip en blanco
@@johanmanuelpaezpena2100 Buen apunte!
Podrías poner un condicional que si la celda está en blanco que no se adjunte el archivo.
También podrías comprobar si el archivo existe dentro de tu equipo antes de enviarlo
@@AprendizdeExcel y tu me puedes decir como seria, soy nuevo y hasta ahora voy conociendo lo poco que he visto en tus tutoriales
@@johanmanuelpaezpena2100 Junto antes de la línea pones un if que evalúe la línea. Si tiene datos que ponga la línea de código como la tienes y si no que pase a la siguiente línea
Hola muy buen tutorial, tienes algún tutorial donde envíes un correo a un destinatario con mas de un adjunto y con pie de firma(imagen).
Si, echa un vistazo a este vídeo:
ruclips.net/video/ULTbreSw2bU/видео.html
excelente vídeo muchas gracias. Estoy trabajando con una mac y en la °referencia° no me aparece °Microoft 2000 CDO en las opciones, ¿Qué puedo hacer? gracias por su tiempo excelente canal
Sorry, no tengo Mac, no te puedo ayudar
Me funciona perfectamente ¿ que tendría que hacer si quiero que el cuerpo del mensaje fuese una imagen ?
Hola Juan José, creo que google pone problemas al agregar imágenes en este tipo de envíos automatizados.
La solución podría estar en subir previamente la imagen a un servidor público y adjuntar la url de esta.
Podría ser con un código similar a este:
hola que tal y si solo quiero adjuntar un archivo que ya tengo en mi escritorio y enviarlo cada hora , que podría hacer? saludos excelente video.
Hola Jose, si quieres mandar siempre el mismo correo se simplifica. Referencialo todo a la fila que quieras y di que mande siempre eso y lo repita cada hora.
¿Cómo?
Supongamos que quieres mandar correos durante un día seguido 1 vez por hora.
For i=1 to 24
...
.To = Range("A2").Value
.CC = Range("B2").Value
....
Y después, y antes de que se acabe el For, métele esta instrucción
Application.Wait (Now + TimeValue("01:00:00"))
buenas este video esta muy bien explicado, pero donde consigo el codigo ?
En el comentario fijado
Hola ha sido un excelente video, me funcionaba muy bien hasta hace algunos días, ayer intenté enviar correos usando la macro y me corre sin ningún problema, pero no envía los correos. Me podrías ayudar? Qué podría estar pasando?
Revisa habilitar aplicaciones poco seguras. Lo mismo se desmarca con el tiempo.
Revisa si has cambiado la contraseña o el correo o has insertado alguna columna o fila y la contraseña no está en el mismo sitio
Ejecuta tb con la opción paso por paso (F8) y comprueba dónde podría estar el error
@@AprendizdeExcel He revisado todas las observaciones que comentas, pero todas están bien. Asimismo, he apretado F8 en cada pasa y no me da ningún error :/
Al ejecutarlo paso por paso con el F8 puedes ponerte encima de cada valor y saber qué valores está tomando
Así sabes que le asigna a las variables, sabes si se salta un paso o lo que sea.
Otra parte de confirmar es quitar esta línea:
On Error Resume Next
Hola, buena tarde. Tu video me parece fenomenal. Intenté aplicar lo que nos enseñas en excel para MAC pero da error. Dice que es error de complicación: No se ha definido el tipo definido por el usuario. Creo que esto se deriva de que en Referencias no me salen las opciones que aquí te aparecen ¿qué puedo hacer?
Gracias por responder. Finalmente tuve que usar una computadora con Windows porque me urgía hacer un envío masivo de correos. Tu explicación y el ejemplo que nos dejaste en el mensaje anclando me funcionó perfecto. Mil gracias
Buenos días, necesito apoyo ya que he realizado todo como indica y lo de la seguridad del video siguiente, sin embargo activar el botón de envío me sale que no he definito sub o function que debo hacer?
¿Copiaste el código entero o te dejaste algo?
Aprendiz, si requiero que la firma tenga varios renglones, pero que no queden tan distantes unos de otros, sino unidos como las firmas corporativas.
Actualmente me queda:
Sebastián Franco
Corredor
Seguros LA.
Porque lo que hice fue agregar otra línea del mismo código:
.HTMLBody = "" & Range("E" & I).Value & "" & _
"" & "Sebastián Franco" & "" & _
"" & "Corredor" & "" & _
Pero necesito que quede así:
Sebastián Franco
Corredor
Seguros LA.
¿Qué debo hacer?
Gracias.
Juan, gracias por pasarte por el canal. El salto de línea es br (el párrafo es p). Entonces, si cambias los párrafos por saltos de línea podría ser así:
.HTMLBody = "" & Range("E" & I).Value & "" & _
"" & "Sebastián Franco" & "" & _
"" & "Corredor" & ""
Prueba y me dices
Hola, me quedo en el 2:27 , no sé porque me sale error, escribo exactamente lo mismo, pero pone que hay problema con esta fórmula.... alguien le ha pasado?
¿Te puedes haber dejado las comillas de cierre?
Hola, hay alguna forma de poder enviar un texto largo en el cuerpo del mail? Porque intento y no me lo permite, seria desde el adjunto?
Hola buenas, me gustaría saber como hago para que al enviar los correos con la macro aparezca mi firma que esta configurada en gmail gracias
No sabes cómo me ha ayudado este correo para mandar reportes personalizados en mi trabajo. Combiné esto con crear carpetas con macros y generar PDF con marcos, luego solo conecté mi excel a mi base de datos en SQL y mando lo que necesito. Ahora solo tengo una duda que no he conseguido solucionar aunque ya intenté varias cosas. Entiendo que manda un solo correo al destinatario de A2 y hacia abajo, pero qué pasa si necesito enviar ese mismo mail a 10 personas? si pongo las 10 direcciones desde A2 hasta A11 va a mandar 10 correos diferentes, pero hay forma de mandar el mismo correo a 10 destinatarios? de antemano te agradezco mucho tu ayuda!!
Genial!
Me alegro que te haya funcionado
Si siempre es el mismo correo, en vez de variable lo puedes dejar fijo todo lo que no sea el correo, es decir:
.Subject = Range("D2").Value
.TextBody = Range("E2").Value
etc
Excelente buen video tengo problemas con los archivos adjuntos me sale error en esta linea .AddAttachment (Range("F" & i).Value) y todo esta tal cual el video sin archivo adjunto envía sin problemas los correos. Estoy enviado un archivo pdf
Desconozco cuál puede ser el error Franklin, podría ser que la ruta estuviera mal y no encontrara el archivo?
gracias lo solucione
@@franklincajusol551 Me alegro ☺
@@franklincajusol551 hola Franklin tengo el mismo error, cómo lo pudiste solucionar?
@@franklincajusol551 Como lo solucionaste yo estoy con el mismo error ?
Hola, en caso de que sean muchos correos y por ende adjuntos, como haces para organizarlos de tal forma que queden la misma fila el correo y el adjunto que le corresponde
Hola Santiago.
En la base de datos deben coincidir en fila los datos de mail, asunto, cuerpo y adjunto.
Imagino que tienes una lista de mail en tu base de datos y tendrás unos adjuntos. Si no los tienes correlacionados en la base de datos, busca si tienes algún patrón de texto y extrae la información con fórmulas de texto para poder enlazar adjuntos con mails
Hola! Muchísimas gracias por este tutorial tan bien explicado. Lo he intentado y me funciona, pero es cierto que cuando pongo un número de destinatarios amplio (+100), no se envían todos, llega un punto en que se corta, y no sé que puede estar pasando. Otra duda es que en algunos, aún sin incluir archivo adjunto, se envía algo titulado "noname", ubicado en mi carpeta de descargas... un poco raro esto. Sabríais ayudarme en ambas cuestiones? Muchas gracias de antemano!
Hola Leticia, gracias por pasarte por el canal, probar el ejercicio y comentarlo.
Partiendo que no se me ha reproducido nunca ese problema al no hacer envíos a tantos emails a la vez, voy a intentar razonar cuál puede ser el problema y buscar una solución.
Excel procesa la información para mandar el correo mucho más rápido que gmail.
Excel trabaja en local, no se cae la red, ni el servidor, ni tiene porque subir archivos
Si gmail no la procesa se le puede acumular.
Supongamos que gmail solo puede mandar un mail a la vez, tienes mala conexión y Excel le manda mandar 10... Se queda enviando el mail 1 se quedan sin enviar 9.
Aunque la conexión sea normal y no tengas ningún microcorte es posible que a partir de un número de mails a gmail le cueste.
¿Cómo podemos solucionarlo?
Podemos hacer varias macros iguales y que una mande los 50 primeros correos, otra los segundos 50, otra...
Digo 50, como si quieres decir 25.
Sin embargo, quizás sea más cómodo que pongas una instrucción que retrase de forma intencionada los mails. Que mande uno, que se pare 2 segundos y que mande el siguiente. Para eso justo antes de que acabe el For le metes la instrucción (Entre el With y el Next). Algo así:
--------------
End With
Application.Wait (Now + TimeValue("00:00:02"))
Next
-----------------
Pruébalo y si funciona me dices para el siguiente que le ocurra
@@AprendizdeExcel Tengo el mismo problema del archivo adjunto llamado "noname". Haz encontrado alguna solucion sobre eso??
@@JazMajano No, a mi no me ocurre y la anterior usuaria no se si probó el código que le propuse
@@AprendizdeExcel tenia el mismo problema. tengo una carga de correos de 4500 y me toco ir enviando de 77 en cada correo enviado. Ahora poniendole ese delay ya no me dio problema (solo el del limite de 500 mensajes por dia claro), enviando desde otro correo lo soluciono de forma temporal.
Por cierto, si sabes alguna forma de evitar ese limite de los 500 mensajes quedo atengo.
Saludos crack, me salvaste la vida
Hola!! buen día!! al ejecutar el código me aparece un mensaje que dice "Error de compilación: No se ha definido el tipo definido por el usuario" Qué podría hacer??
Y Se subraya la parte del código que dice "Dim Email As CDO.Message"
Abriste las librerías?
Qué tal "Aprendiz de Excel". Te comento que no me corre la macro, está habilitado la librería y di acceso a aplicaciones no seguras en el correo. Sin embargo al ejecutar la macro paso a paso no me indica ningún error de compilación, pero los correos no los manda.
Hola Alan, gracias por comentar, vamos a probar dos cosas para ver qué puede estar fallando, primero quita la línea que dice On error resume Next, por si eso nos da alguna pista del problema.
Segundo, en depuración pasa todo el código con F8 y ve observando lo que hace poniéndote encima de la línea anterior que marca (lo que ya está hecho), de esta forma podremos ver si coge bien tu mail, tu contraseña, los destinatarios, etc
@@AprendizdeExcel Gracias por atender el mensaje, era un error en el código del .ITEM.
Por otro lado quisiera consultarte, porqué al enviar los correos masivos no se inserta la firma que tengo preconfigurada en Gmail; o bien, como agregar la firma si es una imagen dentro del cuerpo del correo.
Hola Alan, gracias por contestar.
¿Cuál es el problema del .item?
¿La clave y el usuario que se mete o algo que está mal explicado o colgado en el código?
Para la firma lo mejor es que incluyas la firma directamente dentro del código
Te aconsejo que cambies la línea de body por esta:
.HTMLBody = "" & Range("E" & i).Value & "" & "Tu nombre" & "" & "Tu dirección" & "" & "Tu teléfono"
Los son saltos de línea, añade más o quita en función de lo que quieras.
La previa al teléfono es negrita. Quítalo si no lo quieres o ponlo delante del nombre o dirección
Si quieres una línea más copia el patrón
Si quieres jugar con colores y tamaños prueba con esto:
"This text is boldFont Color" & _
"New line with underlineFont size"
Para adjuntar una imagen yo no he sido capaz de hacerlo en gmail. Sorry
Saludos, le cuento que corrió bien, el problema que tengo es que al momento de abrir el documento en PDF me aparece en blanco, que podrá ser
hola que tal, podia enviar los correos super bien, pero ahora me da un error en tiempo de ejecución y cuando pongo depurar para corregir me marca de amarillo esto .AddAttachment (Range("G" & i).Value), como lo puedo arreglar
Hola Tania, ¿qué tienes en la columna G? Es posible que el archivo que intentas adjuntar no lo pueda hacer?
¿Se ha movido? ¿Está abierto?
Está todo bien con el hipervinculo, lo pincho aparece el archivo… pero sigue apareciendo ese error… lo hice con la fórmula de hipervinculo y con la macro que hiciste y es el mismo error
@@taniacastaneda9281 Hola Tania, como estás?
Pudiste resolverlo? Me pasa lo mismo 😢
buen video necesito que me digas como podría enviar un email en especifico y así dejar un histórico de los email en una base de datos gracias
Hola Samuel, entiendo que tienes una base de datos de e-mails que quieres mandar y que con algún criterio los quieres mandar.
Establece el criterio que quieras y trasladalo de tu base de datos con un índice, buscarv o lo que sea
@@AprendizdeExcel creo que no me has entendido de una base de datos de email quiero seleccionar uno y enviarlo ósea entre cien solo enviar uno solo, para no tener que borra la base datos cada vez que voy a enviar uno GRACIAS
@@samuelgonzalez4065 Tienes razón, no te he entendido antes y sigo sin hacerlo ahora.
Entiendo que tienes una base de datos y enviar uno. Pues en una columna pon un 1 y con cargo a eso que se cargue en la hoja de envíos.
También puedes leer directamente desde esa base de datos y decirle qué fila quieres que se mande
Hola, hice y copie todo igual, pero al momento de activar el botón, no envía los correos como si no se activara la macro, pero si corro cada función con F8, ahí si envía correo por correo, no marca ningún error
Hola Eduardo, gracias por comentar.
¿Si ejecutas con F8 lo ejecuta todo sin problemas y si la lanzas por separado no? ¿o solo te falla el botón?
Desde la cinta de programador se ejecuta bien la macro o tampoco?
@@AprendizdeExcel Hola, no se que hice pero ya quedo solucionado muchas gracias por todo
@@Emaciasp Me alegro!👏
Excelente video, me podrías por favor ayudar a añadir una imagen para el envió de mensajes. te lo agradezco
Hola Laura Vanessa, creo que Google pone problemas al agregar imágenes en este tipo de envíos automatizados.
La solución podría estar en subir previamente la imagen a un servidor público y adjuntar la url de esta.
Podría ser con un código similar a este:
Laura, subimos el lunes este vídeo donde se explica cómo hacerlo con Outlook por si te interesa
ruclips.net/video/ULTbreSw2bU/видео.html
para enviar desde outlook el código cual sería?
ruclips.net/video/4xZWk9wgi2I/видео.html
@@AprendizdeExcel gracias ya pude verlo, una última pregunta desde el código del nuevo enlace puedo enviar a 933 correos?
Desconozco si tienes alguna limitación en tu servidor que te impida hacerlo
Puedes probar a ponerle un retardo de algunos segundos por cada mail o cada tantos mails con la instrucción
Application.Wait(Now + TimeValue(“00:00:05”)
hola lo primero te encontre tus tutoriales de rebote y decirte y agradecer lo bien que lo explicas, y quisiera pedirte ayuda dado que seguí todo este tutorial al pie de la letra, me cree un gmail habilitado para app a 3 todo como tú, pero no envia email, y la macro no marca error. que podria ser, gracias de antemano
Hola Antonio. Gracias por tu comentario.
Prueba varias cosas, primero ejecuta con el modo paso a paso (F8) y mira y entiende qué hace en cada paso (descubrirás rápido el error).
Además retira esta instrucción para que te cante algún error:
On Error Resume Next
Entra al codigo y fijate que te dice con el mouse encima de "CorreoOrigen" a mi me figuraba mi contraseña y en ClaveCorreo vacio, lo que hice fue colocar los valores Range ("i2").Value en vez de utilizar CorreoOrigen y pude enviar los email sin problemas. Saludos
PD: Excelente video y explicacion, ahora estoy intentando adjuntar mas de 1 PDF para enviar, alguna solucion simple? Yo envio recibos de sueldo y algunos los tengo hasta en 5pdf y otros en 1 solo. Desde ya muchas gracias
Hola Captain, gracias por contestar a Antonio.
Para los archivos adjuntos, ¿has probado poner las url en otras columnas y añadir la línea cambiando el código?
Hola excelente video lo estoy poniendo en practica pero me da un error al ejecutarlo y no se como solucinarlo.
El error es "1004" en tiempo de ejecución:
error en el metodo de "Range de objeto:Global"
Hola Yorman, es en la línea del For?
Es posible que tengas algo mal escrito. Prueba a poner For i = 2 to 3, a ver si funciona
Hola donde encuentro el código
Hola Carlos, en el comentario fijado está.
Si no puedes verlo te lo repito
Sub EnviarCorreo()
'Aprendiz de Excel
'ruclips.net/channel/UCvbrUg7GQgg_E_MNUY3RnyA
Dim Email As CDO.Message
Sheets("Mails").Select
CorreoOrigen = Range("i3").Value
ClaveCorreo = Range("i4").Value
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
Set Email = New CDO.Message
'myaccount.google.com/lesssecureapps
Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item("schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1)
.Item("schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Item("schemas.microsoft.com/cdo/configuration/sendusername") = CorreoOrigen
.Item("schemas.microsoft.com/cdo/configuration/sendpassword") = ClaveCorreo
End With
With Email
.From = CorreoOrigen
.To = Range("A" & i).Value
.CC = Range("B" & i).Value
.BCC = Range("C" & i).Value
.Subject = Range("D" & i).Value
.TextBody = Range("E" & i).Value
.Attachments.DeleteAll
.AddAttachment (Range("F" & i).Value)
.Configuration.Fields.Update
On Error Resume Next
.Send
End With
Next
End Sub
¿Existe alguna forma para que también por medio de código se pueda programar la fecha y hora de envío de estos correos?
La forma más sencilla quizás sea que lo pongas en una columna la fecha y hora de cada mail y que al correr la macro compare sí ha llegado la hora de envío, lo mande y lo marque como enviado
@@AprendizdeExcel Es buena, pero lo quiero hacer como lo hace gmail, por servidor, sin necesitar tener la computadora prendida, estoy abierto a soluciones mediante python en caso de que con vba no se pueda, también me parece bien que lo haga en 2do plano mientras que no esté el archivo abierto, en caso de que lo 1ero no sea posible, siempre y cuando también anote la hora en que se envió el mensaje, es decir, debería correr la macro que ya tengo preparada, abriendo excel en 2do plano "no visible", el tema es que no envíe el mensaje en días de fin de semana, o feriados, o en horarios no oportunos, como el rango por fuera de 6 am a 6 pm en este caso en particular.
Es posible que se pueda con Excel
Le echo un vistazo cuando pueda y si encuentro algo te cuento
y si marca este error .AddAttachment (Range("G" & q).Value) que se tiene que realizar ?
Hola Teresa, con ese error te marca que no puede adjuntar el archivo.
Has utilizado la variable "q" aposta o es un error? Es posible que no estés definiendo bien el adjunto?
Has probado a ejecutar paso a paso?
@@AprendizdeExcel ya nada me marca error pero cuando le doy enviar correo ya no manda nada,
¿Has utilizado la variable "q" para todo el bucle?
Ejecutando paso por paso qué valor te da al adjunto?
He hecho la macro siguiendo las indicaciones del video y no me funciona, es como si quedase en un bucle. Podría enviársela para que la revisara. Muchas gracias
He solucionado el problema, muchas gracias
Genial!
Hola, buena tarde. En la opción de REFERENCIAS a mi no me aparecen todas las opciones que tú tienes. Yo estoy tratando de implementar tus recomendaciones en excel para Mac pero me sale error ¿cómo puedo adaptar tus recomendaciones?
Lo siento Pamela, no trabajo con Mac, no se qué problema de incompatibilidades te puede estar dando.
¿Has probado a ejecutar la macro con paso a paso (F8)?
Hola, buenas tardes. Quiero hacer más grande el cuerpo del correo, pero al intentar agregar otras celdas, no me lo permite. Se podría hacer eso?
¿A qué te refieres? ¿A combinar celdas dentro del cuerpo?
Revisa este vídeo complementario, que quizás tenga lo que necesitas para meter varis celdas y formato
ruclips.net/video/ULTbreSw2bU/видео.html
@@AprendizdeExcel Muchas gracias
De nada 😉
Amigo si me salio todo bien, pero al momento de que quiero mandar archivos adjuntos me da un error y dice que Las siguentes caracteristicas no se pueden guardar en libros sin macros "Proyecto de VB"
¿Te lo dice al ejecutar la macro o al guardar el libro?
¿Dentro de la macro has puesto la opción de que se grabe?
@@AprendizdeExcel Lo hace cuando intento guardar el excel
Pero solo me sucede cuando quiero mandar archivos pdf adjuntos con la ubicación
Si no pongo la ubicación de los archivos si me manda los correos
@@AprendizdeExcel Al momento de que quiero mandar los pdf me dice que se ha producido un error “el sistema no puede encontrar el archivo especificado”
Si quieres guardar el archivo debe ser habilitado con macros o perderás los módulos (los códigos que tengas dentro)
Que te pida guardarlos cuando envía los correos no tiene sentido. No tiene que ver.
Que los pdf tengan ubicación no entiendo porque te dan ese error
Hola! Intento enviar Emails con adjuntos pero aparece una ventana de error que dice que el acceso es denegado. ¿Cómo puedo solucionarlo?
Es posible que la URL esté mal? O el archivo abierto?
a mi me sale el siguiente error el proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso.
Hola buen día, gracias por tus video de verdad que me sirven bastante, pero necesito de tu amable ayuda copié la macro tal cual pero pero me genera error en la parte donde está . AddAttachment (Range("F" & i).value) ya le he borrado y le he uelto a escribir pero no me deja y siempre me resalta en amarillo esa parte por favor ayúdame por favor,
Agradezco de tu amable ayuda que debo hacer?
Está bien puesta la URL del archivo que quieres adjuntar?
Has probado con otro archivo?
@@AprendizdeExcel excelente muchas gracias 👌 por tu amabilidad perfecto ya me funciono no estaba tomando el adjunto gracias por tu ayuda mil bendiciones 🙏
Genial!
Me alegro que te haya funcionado
Gracias por comentarlo ☺️
hola amigo ya no deja enviar por que gmail ya bloqueo a app de terceros has un nuevo video de como activar esa opcion
Ya está hecho Edgar 😉
ruclips.net/video/CL5w3sW72UI/видео.html
Ya vi tu otro video eres un crack ya pude gracias por tu valioso conocimiento
Me alegro que te haya funcionado.
Gracias por comentarlo!
Salu2
Que tal buen día, copie la macro que colocaste y complete los items, sin embargo no se envían los mails, me marca un error en .send me puedes ayudar por favor.
Ya lo logre mi estimado, solo que me di cuenta que ya cuando va a terminar de enviar mi base, marca un error de tiempo, eso a que se debe y otra cosa, cómo puedo agregar el nombre para personalizar más el correo.
Muy buenos tus aportes muchas gracias.
Hola Álex, gracias por contestar y me alegro que te haya funcionado.
Me he dado cuenta que la parte de Item la recorta al pegarla. Me pasa con algunas macros. La voy a intentar pegar en el comentario fijado
Error de tiempo no se a qué te refieres. Es la primera que me dicen eso. Lo mismo tarda Gmail en responder y hay que poner un retraso. Luego te mando un código antes de enviar a ver si es eso
El código que te decía esta mañana podría ser algo así que yo colocaría antes del send por si fuera un problema de tu conexión
Application.Wait (Now + TimeValue("00:00:05"))
*Los 5 son que espere 5 segundos antes de enviarse
@@AprendizdeExcel Hola, para agregar otro archivo adjunto cómo seria la forma correcta de hacerlo?
Buenos dias tengo problemas la utice la macro por 5 meses pero este mes no me quiere funcionar y caundo doy F8 me da error Sheets("Mails").Select me dice intervalo fuera de tiempo. Alquien me puede ayudar
Es un cambio en las políticas de Gmail desde el 30 de mayo. Hicimos otro video en el que explicaba como resolverlo
ruclips.net/video/CL5w3sW72UI/видео.html
@@AprendizdeExcel Me rindo he hecho de todo coloque todo tal cual, dure 5 meses felices trabajando. Enviando 5000 correos en una semana pero ya no me funciona y enviarlos manualmente de uno en uno me voy tardar mas de loq ue la compañia me exige. Muchas gracias pero nose porque no envia.
La nueva contraseña que te genera la cambiaste?
Has probado a ejecutarlo paso a paso (F8) y has comprobado que coge la nueva contraseña bien?
Hola muchas gracias por tu video pero al realizarlo me sale "no se puede ejecutar la macro. Puede que la macro no esté disponible en este libro o que se hayan deshabilitado todas las macros"
Debes habilitar las macros.
¿Es al abrir el archivo de nuevas o al grabarlo y ejecutarlo?
He escrito varios comments con mi consulta, pero nose porque RUclips no lo publica!:(
Tu método me funciono muy bien!! Pero quisiera saber cómo hacer para que a las personas que le llegue el correo, le salga en su bandeja de entrada “de: Daniela H” ósea un nombre. Porque hice la prueba con correos “de prueba” y me sale el correo desde donde yo los estoy enviando tipo: “De: ejemplo@g….”. Como cambio eso? Le agradecería muchísimo su ayuda!
Hola Daniela, RUclips a veces bloquea comentarios. Desconozco porque, pero no los pasa por SPAM. Elimina directamente. Quizás sea por tener un correo, esos los bloquea todos.
No lo se Daniela, he estado buscando y no encuentro la respuesta.
Lo siento
hola me marca error en la siguiente linea de codigo .From = CorreoOrigen y la ventana de error me dice object required
Hola Rodrigo, ¿has definido el correo desde el que quieres mandar el mail?
Hola! muy interesante el vídeo. Acabo de probarlo y no me funciona.. no entiendo porqué, he seguido todos los pasos al pie de la letra. Simplemente al darle al botón se carga y no hace nada, alguna idea?
Solucionado, tenía que activar lo de las apps poco seguras :) gracias!
Genial!
Me alegro que te funcione
Salu2
@@AprendizdeExcel Una duda, existe un limite de lineas por enviar? He intentando enviar 500 y solo ha enviado unos 90, he repetido la macro e igual. Y ahora una tercera vez y no envia nada. Alguna idea? La macro está corriendo, he puesto un mensaje al final del todo para saber cuando termina. Muchas gracias
Hola Ricardo, nunca he tenido la necesidad de mandar ese volumen de correos, a parte de cosas que ya habrás descartado como conexión a internet, tamaño de adjuntos y demás, es posible que gmail te saque porque te considere un ataque por denegación o similar.
Es decir, que 90 puedan ser el límite de correos que puedas mandar a la velocidad que consigue mandar la orden Excel
¿Cómo podemos solucionarlo?
Podemos hacer varias macros iguales y que una mande los 50 primeros correos, otra los segundos 50, otra...
Digo 50, como si quieres decir 90 ó 25 (yo no apuraría).
Sin embargo, quizás sea más cómodo que pongas una instrucción que retrase de forma intencionada los mails. Que mande uno, que se pare 2 segundos y que mande el siguiente. Para eso justo antes de que acabe el For le metes la instrucción (Entre el With y el Next). Algo así:
--------------
End With
Application.Wait (Now + TimeValue("00:00:02"))
Next
-----------------
También puedes decirle que cada 50 mails pare 5 minutos y continúe con el 51. Para eso metes una variable que vaya sumando mails y cuando llegue al número que digas se pare.
Pruébalo y si funciona me dices para el siguiente que le ocurra
me funciona perfecto, pero quisiera agregarle una imagen en el cuerpo del mensaje.. No lo he logrado
Hola Juan, creo que Google pone problemas al agregar imágenes en este tipo de envíos automatizados.
La solución podría estar en subir previamente la imagen a un servidor público y adjuntar la url de esta.
Podría ser con un código similar a este:
Buenas tardes trato de hacer punto a punto pero me sale un error .AddAttachment (Range("F" & i).Value) no entiendo me sale un sombreado de amarillo y está todo bien, no entiendo ):
¿El archivo lo puede adjuntar? ¿Está abierto?
Prueba en el menú depuración ejecutar paso por paso (F8) y observa el valor que te da en esa variable.
Lo mismo te lo adjunta de otra hoja o de otra columna
se le puede poner una firma??
Hola Juan, gracias por comentar
Para la firma lo mejor es que incluyas la firma directamente dentro del código
Te aconsejo que cambies la línea de body por esta:
.HTMLBody = "" & Range("E" & i).Value & "" & "Tu nombre" & "" & "Tu dirección" & "" & "Tu teléfono"
Los son saltos de línea, añade más o quita en función de lo que quieras.
La previa al teléfono es negrita. Quítalo si no lo quieres o ponlo delante del nombre o dirección
Si quieres una línea más copia el patrón
Si quieres jugar con colores y tamaños prueba con esto:
"This text is boldFont Color" & _
"New line with underlineFont size"
No puedo encontrar los parametros de Google. No los veo en el comentario fijado 🤔🤔
Si le das a leer más está todo el código.
Te lo dejo por aquí:
Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item("schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1)
.Item("schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Item("schemas.microsoft.com/cdo/configuration/sendusername") = CorreoOrigen
.Item("schemas.microsoft.com/cdo/configuration/sendpassword") = ClaveCorreo
Hola, me salta error en Sheets("Mails").Select" y no se que esta mal, que puedo hacer?
Hola Bruno, tienes una hoja que se llama Mails?
En el vídeo, al iniciar la explicación de la macro, explica esa parte
@@AprendizdeExcel si lo tenia, igual ya encontre el error. Habia un . De mas
Ok, perfecto
Te funciona ya?
@@AprendizdeExcel siii, super. Me tarda un poquito, pero si :D. Muchisimas gracias
Me alegro que te funcione 👏👏👏
Como hago para enviar mi firma ?
Aquí tienes un vídeo que lo explica paso por paso
ruclips.net/video/E6kcXoTWEN8/видео.html
@@AprendizdeExcel Amigo disculpa, una ultima pregunta, me gustaría hacer esto pero desde WEBMAIL, cual sería el código para establecer conexión al código
Hola, cuando quiero ejecutar la macro me sale esto: "Tipo definido por el usuario no definido". Pero lo he copiado tal cual
Hola Karla, en qué línea te marca exactamente eso?
Habilitaste las librería y diste permiso a tu cuenta para entrar con aplicaciones de terceros?
@@AprendizdeExcel, le di a habilitar todas las macros, a eso te refieres con las librerias ? Cuando cierro el mensaje se pinta la primera linea Sub EnviarCorreo()) de amarillo pero se selecciona la segunda linera (Dim Email As CDO.Message), gracias.
NO, me refiero a que habilites las referencias que se comentan en el 4:06. Sin eso imposible que funcione.
@@AprendizdeExcel Ya me funcionó, muchas gracias !
Perfecto!
Me alegro!
Gracias por comentarlo
Salu2
cuando envio el correo llega el archivo como un none
E aparece un erro e de compilación ayudsaa
¿Qué error te aparece?
me aparece un error de compilacion
no se ha definido el tipo definido por el usuario
y eso que te segui al pie de la letra :(
¿En qué línea se te para exactamente?
Has probado a compilar paso por paso con F8 para ver cuál es el error exacto?
Buenas noches👍, me puedes apoyar con el código para más destinatarios y más adjuntos para esos destinatarios 😊
Me pueden ayudar, me había estado funcionando magnifico esta rutina pero ya no la puedo utilizar me marca "se ha producido un error 9 en tiempo de ejecución subíndice fuera del intervalo" alguien o el autor me pueden ayudar?
pudiste resolverlo, me da el mismo error?
No pude 😢
He hecho todo pasp a paso y no se envian
Hola María, si lo has hecho todo igual paso por paso y no se envían no se lo que puede estar fallando.
Por si no fuera todo igual yo comprobaría lo siguiente:
Primero ejecutar la macro en paso por paso (F8) para ver qué hace en cada paso y si algo no te cuadra.
Aquí puedes comprobar que las variables de correo, contraseña, destinatarios, etc las coge bien.
Puedes haberle indicado mal la hoja, la fila o la columna.
También puedes probar a retirar esta línea para identificar el problema
On Error Resume Next
Y por último comprobaría si has permitido el acceso a aplicaciones poco seguras
No me deja
Ejecuta paso a paso y comprueba que pasa
Quita la línea on error que te marcará antes el error
Me arroja un error 9
No me funciona, lo he copiado y hecho igual, no se que pueda ser
Qué error te da Jhon?
Habilitaste la librería y las aplicaciones de terceros en tu correo?
@@AprendizdeExcel si, no me arroja error, pero tampoco envía los correos
Si no te da error no será problema de librería. No tengo claro lo de las aplicaciones de terceros.
Yo lo analizaría con la compilación paso a paso (F8), para ver dónde está dando el fallo y así se podrá ver cuál es el problema
Lo mismo no tienes el send, o no coge los mails de la columna que debe, o de la hoja
@@AprendizdeExcel Ya lo encontré, copie igual al que tienes aquí fijado y este no tienen toda la información del código, la parte de .Item esta incompleta, revise nuevamente el video e hice el código completo desde ahí. Gracias por atenderme y que buen material es el que produces en este canal, te has ganado un seguidor.
Me alegro que lo arreglaras y te funcionara.
¿Qué parte es la que falta?
En principio debería estar todo recogido
Quiero enviar un archivo con hipervínculos a archivos kmz. Pero al enviarlo supongo que la ruta del hipervínculo no es la misma. Como hago para que a cualquiera que se lo envíe el hipervínculo funcione ?
Hola que tal la tabla me va muy bien pero tengo un problema a la hora de adjuntar una imagen me marca error en la macros, me podría orientar en decirme el por que no funciona "se ha producido un error "-2147221020(800401e4)" en tiempo de ejecución:
Sintaxis no valida.
¿En qué línea te marca el error?
¿Has visto el segundo vídeo? Por si fuera un problema de acceso
@@AprendizdeExcel Me marca el mismo error en la linea .AddAttachment (Range("AO" & i).Value) que se puede hacer
@@mariadelmarbedoyaromero2730 Mismo error :C, pudiste solucionarlo??
Ya encontre el detalle, tu documento adjunto tiene que estar en la misma carpeta de tu archivo de Excel generado