Te ha pasado, que quieres enviar un simple correo, pero tienes que hacer los mismos pasos siempre?
A que me refiero?
Los siguientes pasos te son familiares?
- Abrir tu navegador (Chrome, Firefox, Edge).
- Entrar a la web de Gmail.
- Iniciar sesión(o mantener la sesión iniciada! ahorrando tiempo 😄)
- Luego dar Click en redactar correo.
- Digitar el destinatario.
- Digitar el asunto y el mensaje
- Y por ultimo enviar el mensaje!
- Nah, mejoremos este proceso 👇
Pueden ser pasos sencillos, pero No lo considero algo práctico cuando necesitamos enviar un correo simple como un recordatorio, o una reunión, o lo que necesites.
Por eso, en esta ocasión te quiero mostrar una forma para poder enviar emails de Gmail desde Excel.
¿QUIERES DESCARGAR EL EJEMPLO?
En el siguiente link puedes descargar el archivo con el código listo funcional, si tienes alguna duda o sugerencia para mejorar el código, simplemente coméntame en el formulario de Contacto
Para descargar el archivo utilizado es necesario estar registrado. Acá Puedes Registrarte y si ya estas registrado puedes ingresar a tu cuenta de usuario.
Si quieres ver una alternativa para enviar correos pero desde Google Sheets puedes ver este artículo.
CONFIGURAR EL ENTORNO
Adicionar un módulo en Excel
si has visto los otros artículos en esta página esto ya lo sabes, insertar un nuevo modulo en Excel.
Adicionar Referencia «Microsoft CDO for windows 2000 library»
Luego necesitamos la referencia «Microsoft CDO for windows 2000 library«, esta es necesaria precisamente para utilizar las funciones de envío de correo.
Generar contraseña en Gmail
Esto es lo mas raro, pero a la ves sencillo, Google ya no permite colocar tu contraseña personal de Gmail en Aplicaciones de Terceros, como en este caso de Excel.
Si ya sabes generar una contraseña de Gmail para aplicaciones de Terceros omite estos 3 pasos.
Para esto necesitamos generar una contraseña de tu cuenta de Gmail, NO significa cambiar la contraseña, significa generar una «contraseña de la aplicación«. veamos
Paso 1: Ir a la pagina web de Seguridad de Google
Dirigete a https://myaccount.google.com/security, selecciona la sección «Contraseñas de Aplicaciones«
Paso 2: Seleccionar Aplicación
En este paso debes seleccionar en la lista de «Seleccionar Aplicación» el que dice «Otra«, luego debes digitar la aplicacion que va a utilizar la contraseña, en este caso «Excel»
Paso 3: Copiar la contraseña y colocarla en Excel
Luego de generar la Contraseña, debes copiarla y colocarla en el Código en Excel, esta es la contraseña que Excel va a utilizar, y es como si fuera tu contraseña personal, asi que NO la compartas.
ADICIONAR CODIGO PARA ENVIAR GMAIL DESDE EXCEL
Adicionar Código
El siguiente código es el que debes ingresar en el módulo que adicionaste en pasos anteriores.
Lo que hace es adicionar la lógica para enviar un correo desde Excel con una cuenta de Gmail, veamos.
Sub enviar_correo()
Dim Email As CDO.Message
Set Email = New CDO.Message
correo = "tucorreo@gmail.com"
passwd = "bulyssaadgssvrvu" 'Contraseña Generada por Gmail
destino = "correodestino@gmail.com"
asunto = "asunto del correo"
cuerpo = "menssaje del correo"
Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = CLng(465)
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = Abs(1)
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = correo
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = passwd
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
End With
With Email
.To = destino
.From = correo
.Subject = asunto
.TextBody = cuerpo
.Configuration.Fields.Update
.Send
End With
End Sub
Luego adicionar un Botón para ejecutar la función «enviar_correo()«.
Adicionar Botón en Excel
Esto ya lo sabrás, pero lo adiciono acá para dejar el ejemplo completo.
Adicionar Macro de Enviar correo al Boton
Luego damos clic derecho al botón y asignamos la macro enviar_correo().
Y listo! estos serian los pasos para enviar un correo muy básico y nada dinámico desde Excel. Está totalmente funcional…
Aunque también podrías programar una macro para que se ejecuta a una hora determinada.
Pero…
Lo que queremos, es que sea más dinámico y útil para ti, vamos a modificarlo un poco.
MEJORAR LOS PARAMETROS DEL ENVIO DE CORREO
Destinatario, asunto y mensaje dinámico
Primero necesitamos dejar esos 3 campos: destinatario, asunto y mensaje que los capture desde celdas, para eso hacemos lo siguiente:
Sub enviar_correo()
'...El resto de código
destino = Range("A2").Value
asunto = Range("B2").Value
cuerpo = Range("C2").Value
'...El resto de código
End Sub
Adicionar Mensaje de Error o Confirmación
Claro, por que no, debemos colocar un mensaje de confirmación en caso de que sea exitoso el envío, o de error si no se ha podido enviar el correo. Realizo la explicación dentro del código.
Sub enviar_correo()
'...El resto de código
With Email
.To = destino
.From = correo
.Subject = asunto
.TextBody = cuerpo
.Configuration.Fields.update
On Error Resume Next ' Adicionamos esta linea para que no se detenga el código en caso de error
.Send
End With
'Adicionamos las siguientes lineas de código
'identificando si hay o no error para mostrar un mensaje condicionado
If Err.Number = 0 Then
MsgBox "El mail se envió con éxito" & vbNewLine & vbNewLine & _
"Destino: " & destino & vbNewLine & _
"Asunto: " & asunto & vbNewLine & _
"Mensaje: " & cuerpo, vbInformation, "Informe"
Else
Error = InputBox("Se ha generado un error. " & Err.Description & " Error N°:" & Err.Number, , config)
MsgBox "Se produjo el siguiente error: " & Err.Description, vbCritical, "Error nro " & Err.Number
End If
End Sub
Adicionar Archivos Adjuntos
Si, también podemos enviar un correo desde Excel con Archivos adjuntos, esta característica personalmente la he utilizado bastante.
Lo único que necesitamos es identificar la ruta del archivo o preguntarle al usuario donde se encuentra el archivo(para hacerlo mas dinámico).
También podemos adjuntar más de un archivo, para esto necesitamos hacer un ciclo de los archivos seleccionados y adjuntarlos al correo.
Por ultimo tambien podemos preguntarle al usuario donde esta el archivo.
Veamos las 3 opciones.
Opción 1: Adicionar 1 solo archivo Adjunto por ruta Directa
El mas sencillo, para esto lo único que necesitamos es adicionar una linea de código con la ruta del archivo que queremos adjuntar.
Sub enviar_correo()
'...El resto de código
With Email
.To = destino
.From = correo
.Subject = asunto
.TextBody = cuerpo
.AddAttachment ("C:\Users\Cristhian\Desktop\Imagen de Excel.png")'Aca adicionamos la ruta del archivo a adjuntar
.Configuration.Fields.Update
On Error Resume Next ' Adicionamos esta linea para que no se detenga el código en caso de error
.Send
End With
'...El resto de código
End Sub
Opción 2: Adicionar 2 o mas archivos Adjuntos por ruta directa
Es simplemente lo mismo que la Opción 1, pero adicionando mas veces la linea de código, veamos
Sub enviar_correo()
'...El resto de código
With Email
.To = destino
.From = correo
.Subject = asunto
.TextBody = cuerpo
.AddAttachment ("C:\Users\Cristhian\Desktop\Imagen de Excel.png")
.AddAttachment ("C:\Users\Cristhian\Desktop\Imagen de Excel2.png")
.AddAttachment ("C:\Users\Cristhian\Desktop\Imagen de Excel3.png")
.Configuration.Fields.Update
On Error Resume Next ' Adicionamos esta linea para que no se detenga el código en caso de error
.Send
End With
'...El resto de código
End Sub
Opción 3: Preguntar al usuario la ruta del archivo
Esta es un poco mas compleja, pero básicamente hacemos uso del asistente para buscar un archivo en el pc. veamos el código.
Sub enviar_correo()
'...El resto de código
Dim filesDialog As FileDialog
Set filesDialog = Application.FileDialog(msoFileDialogFilePicker)
'Asistente para seleccionar archivos
filesDialog.Title = "Selecciona los archivos" 'Titulo de la ventana modal
filesDialog.AllowMultiSelect = True 'Permitir seleccionar varios archivos
If filesDialog.Show <> -1 Then Exit Sub 'Si no seleccionamos nada entonces cancelamos
With Email
.To = destino
.From = correo
.Subject = asunto
.TextBody = cuerpo
For i = 1 To filesDialog.SelectedItems.Count'Ciclo para adjuntar los archivos seleccionados
.AddAttachment (filesDialog.SelectedItems(i))
Next i
.Configuration.Fields.Update
On Error Resume Next ' Adicionamos esta linea para que no se detenga el código en caso de error
.Send
End With
'...El resto de código
End Sub
CONCLUSION
Ya aprendiste como enviar correos de Gmail directamente desde Excel, ya te queda a ti personalizarlo para adaptarlo a tus necesidades.
✅ Puedes también revisar nuestro artículo donde puedes enviar correos desde Google Sheets
Puedes adaptarlo por ejemplo para:
- Programar el envío de un correo (como programar una función?)
- Adicionar un botón en la Cinta de Opciones de Excel(Asi es como lo tengo yo).
- Enviar muchos correos automatizados.
Si quieres ver mas ejemplos que tenemos visita nuestro Blog
Espero te guste!
Saludos!
☕Si te ha gustado el contenido puedes invitarme un café! ☕
DESCARGAR EJEMPLO
En el siguiente link puedes descargar un sencillo ejemplo, Si tienes alguna duda o sugerencia para mejorar el código, simplemente comenta en el formulario de Contacto
Para descargar el archivo utilizado es necesario estar registrado. Acá Puedes Registrarte y si ya estas registrado puedes ingresar a tu cuenta de usuario.
Excelente Tutorial para enviar correos…
Muchas gracias!!!
Con gusto!!
gracias, por permitirme explorar macros
Me alegra que te sea útil!
Buenos días,
Muy agradecido con el aporte del código que nos has dejado. Sin embargo, tenía una duda. Básicamente tengo el mismo código, pero lo que estoy agregando es que la función principal es la de adjuntar la hoja activa y enviarla por correo, creando esta última como un archivo temporal. En ese sentido, la variable que me está ocasionando problemas es la de la dirección del archivo . Te adjunto mi código y muchas gracias de antemano.
Sub enviar_correo()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
Dim Email As CDO.Message
Set Email = New CDO.Message
correo = «tucorreo@gmail.com»
passwd = «xxxxx»
‘PRUEBA
Dim NombreArchivo As String
Dim RutaTemporal As String
On Error Resume Next
If NombreArchivo = «» Then NombreArchivo = ActiveSheet.Name
RutaTemporal = VBA.Environ(«temp») & «\»
NombreArchivo = RutaTemporal & NombreArchivo & «.xlsx»
Rutafinal = NombreArchivo ‘Esta es la que está ocasionando problemas.
ActiveWorkbook.ActiveSheet.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs NombreArchivo
Application.DisplayAlerts = True
destino = «sergio.lopez@pucp.pe»
asunto = «Reporte de Pago e Ingreso de Fruta»
Email.Configuration.Fields(cdoSMTPServer) = «smtp.gmail.com»
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(465)
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate») = Abs(1)
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout») = 30
.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername») = correo
.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword») = passwd
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl») = True
End With
With Email
.To = destino
.From = correo
.Subject = asunto
.TextBody = cuerpo
.AddAttachment (Rutafinal)
.Configuration.Fields.Update
.Send
End With
ActiveWorkbook.Close False
VBA.Kill NombreArchivo
On Error GoTo 0
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = False
Application.CutCopyMode = False
End Sub
Hola buen dia.
Como puedo anexar en los correos mas correos ya que solo me envia la selda A2 pero los demas que estan hacia abajo no me los envia, podrian apoyarme de favor
5621181842 les dejo mi whats
Simplemente excelente….
Muchas gracias Carlos!!! Un saludo!
Muchas gracias, me sirvio de mucho para lo que necesitaba, consulta en caso de enviar en el cuerpo de mensaje un Rango de selección de celdas, como se podría hacer?
Estimados, acá encontré algo para adjuntar una selección cuando se envia el correo
https://www.mrexcel.com/board/threads/have-a-gmail-vba-is-it-possible-to-add-a-range-of-cells-into-text-body.1036866/
Consulta.. el código me quedó así:
Sub enviar_correo()
Dim Email As CDO.Message
Set Email = New CDO.Message
Correo = «comprobantesded@gmail.com»
passwd = «iobcpqcuirgdvozz» ‘Contraseña generada por Google(Ver Articulo https://practicaprende.com/12)
destino = Range(«+’SERVICIO M3′!(J12:J999)»).Value ‘Capturamos los datos desde celdas
Asunto = Range(«+’DATOS!(A34)»).Value ‘Capturamos los datos desde celdas
cuerpo = Range(«+’DATOS!(A26:A32)»).Value ‘Capturamos los datos desde celdas
Email.Configuration.Fields(cdoSMTPServer) = «smtp.gmail.com»
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(465)
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate») = Abs(1)
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout») = 30
.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername») = Correo
.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword») = passwd
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl») = True
End With
With Email
.To = destino
.From = Correo
.Subject = Asunto
.TextBody = cuerpo
.Configuration.Fields.Update
.Send
End With
End Sub
End Sub
Pero me arroja un Error de compilación
No se ha definido el tipo definido por el usuario
y me deja seleccionado el «Email As CDO.Message» y el color amarillo de error en «Sub enviar_correo()
Como lo puedo solucionar?
Hola,
Alguien sabe como añadir una imagen en el body? he tratado haciéndolo con HTML pero no me carga, asumo que debe ser por que la imagen está local.
Hola Paul! Gracias por escribir!
Intenta reemplazando el .TextBody por .HTMLBody, ya que este último si acepta el formato de HTML.
De igual forma lo que comentas es cierto, si tienes la imagen en local no te funciona, ya que al enviarlo por correo debe poderse cargar desde Gmail, y por ende necesitas una ruta publica para mostrar una imagen por HTML.
Intentalo y me cuentas! un saludo! 👍
Alguien ha logrado agregar una imagen en el body? lo he intentado con HTML y me sale nulo, cuando lo reviso veo que pasa por un proxy y se altera la referencia.
Hola Paul! te escribí en el otro comentario, intenta poner la ruta de la imagen que no sea en local, me refiero que la imagen tenga un link publico!
Un saludo!
¿Como se puede hacer para enviar un correo de manera masiva y con archivos locales?, me base bastante en el tutorial de Outlook y trato de combinar un poco de esto, con un poco de lo de Gmail. se que son 2 plataformas distintas y usan conexiones diferentes, pero me gustaria que leyera mi plantilla tal y como la de outlook pero para gmail dejo mi codigo como referencia
Sub enviar_correo()
Dim Email As CDO.Message
Set Email = New CDO.Message
Dim Base As Worksheet
Correo = «correo@correo.com»
passwd = «*****»
For i = 2 To Range(«A» & Rows.Count).End(xlUp).Row
Ruta = «C:\ruta del archivo»
File = Base.Range(«E» & i).Value
Extension = Base.Range(«F» & i).Value
Adjunto = Ruta & «\» & File & Extension
destino = Range(«B» & i).Value
asunto = Range(«C» & i).Value
cuerpo = Range(«D» & i).Value
Email.Configuration.Fields(cdoSMTPServer) = «smtp.gmail.com»
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(465)
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate») = Abs(1)
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout») = 30
.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername») = Correo
.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword») = passwd
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl») = True
End With
With Email
.To = destino
.From = Correo
.Subject = asunto
.TextBody = cuerpo
.Attachments.Add (Adjunto)
.Configuration.Fields.Update
On Error Resume Next
.Send
End With
If Err.Number = 0 Then
MsgBox «El mail se envió con éxito» & vbNewLine & vbNewLine & _
«Destino: » & destino & vbNewLine & _
«Asunto: » & asunto & vbNewLine & _
«Mensaje: » & cuerpo, vbInformation, «Informe»
Else
MsgBox «Se produjo el siguiente error: » & vbNewLine & vbNewLine & Err.Description, vbCritical, «Error nro » & Err.Number
End If
End Sub
Excelente aporte y como se haria desde una cuenta de yahoo
Claudio!
Gracias por escribir, voy a tener en cuenta esta sugerencia y dado caso actualizo el articulo o creo uno nuevo!
Un saludo!👍
me agradaria saber que debo agregar si quisera dejar el correo guardado como borrador y luego poder verificarlo para enviarlo manualmenyte, gracias saludos
me gusto el aporte y aprendi algo de comoligar la cuenta. pero ahora bien todo funciona genial de este tutorial. mi duda es como podria modificarlo para enviar masivos. tengo una lista de 3489 correos para enviar una carta invitacion de un curso.
quiero enviarlos todos… quedo a la orden.
muchas gracias!
Luis! gracias por comentar!
Mi sugerencia en este caso es que utilices una herramienta externa a Excel ya que Gmail puede bloquear tu cuenta al enviar demasiados correos ya que Gmail considera esto como spam, te sugiero páginas como mailchimp, allí cargas esos correos y haces un envío masivo con un formato especifico.
Un saludo! 👍
hola se puede guardar el correo generado como enviado en el gmail con codigo?
Buen día,
Como podria agregar el crackeo de los mensajes enviados desde la macro, con la extensión de Mailtrack?
Duglas!!
Si el crackeo lo realiza la extensión no creo que sea necesario adicionar nada a la macro, aunque la verdad desconozco la extensión para darte una mejor respuesta a este crackeo de emails.
Un saludo y me hubiera gustado poder ayudarte mas. 👍
Hola, este artículo me enseñó todo lo que nunca aprendí, soy contadora de programación sé poco, pero quisiera saber como modificar la macro para que no solo pueda enviar los datos de la línea 1 sino colocar un listado de correos hacia abajo y que pueda tomarme en cuenta todos en ellos y que por cada línea me deje seleccionar un archivo para enviar. Ya Intenté colocando en esta parte así como un rango de lectura, pero claro no me lo acepta.
destino = Range(«A2:A20»).Value ‘Capturamos los datos desde celdas
asunto = Range(«B2:20»).Value ‘Capturamos los datos desde celdas
cuerpo = Range(«C2:20»).Value ‘Capturamos los datos desde celdas
agradezco su ayuda.
Un saludo Ilse! Gracias por comentar!
Para lograr enviar el correo a manera de lista sería necesario hacer un ciclo que recorra los correos y así mismo valla enviándolos y por otro lado sería obtener el archivo que quisieras enviar basado en una ruta pero en una nueva columna, en este caso sería utilizar la columna D, para que en cada fila cargue la información a enviar y obtenga la ruta de la columna D el archivo a enviar.
Me han pedido eso varias personas, voy a ir trabajando en esta opción y dado caso actualizar este artículo para enviar a múltiples correos y si quieres escríbeme por acá tu correo y una vez lo tenga te lo envío.
Un saludo!! 😁
Hola Cristhian, a la que excelente tu ayuda y apoyo si mi correo es imzartllams151218@gmail.com
yo antes usaba pero este en outlook y me dejaba hacer el listado de correos y a cada fila trazar una ruta para que adjuntara un archivo, pero la verdad no lo pude adaptar..
Sub Send_Files()
‘Working in 2000-2010
Dim OutApp As Object
Dim OutMail As Object
Dim sh As Worksheet
Dim cell As Range, FileCell As Range, rng As Range, cellcc As Range
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set sh = Sheets(«SendFiles»)
Set OutApp = CreateObject(«Outlook.Application»)
For Each cell In sh.Columns(«B»).Cells.SpecialCells(xlCellTypeConstants)
‘cellcc = sh.Columns(«C»).Cells.SpecialCells(xlCellTypeConstants)
‘Enter the file names in the C:Z column in each row
Set rng = sh.Cells(cell.Row, 1).Range(«D1:M1»)
If cell.Value Like «?*@?*.?*» And _
Application.WorksheetFunction.CountA(rng) > 0 Then
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = cell.Value
.cc = cell.Offset(0, 1).Value
.Subject = «Notificación Aplicación de Multa por incumplimiento Contrato, » & cell.Offset(0, 11).Value
.body = «Estimado Socio (a), » & cell.Offset(0, -1).Value & » inmobiliaria ….. le notifica que de acuerdo con su contrato,de no presentar la(s) cerficación(es) de venta(s) pendiente(s) según carta adjunta, se estará procediendo a facturar la multa en los próximos dias. Saludos cordiales. »
.ReadReceiptRequested = True
.OriginatorDeliveryReportRequested = True
For Each FileCell In rng.SpecialCells(xlCellTypeConstants)
If Trim(FileCell) «» Then
If Dir(FileCell.Value) «» Then
.Attachments.Add FileCell.Value
End If
End If
Next FileCell
‘.send ‘
.display ‘Or use Send
End With
Set OutMail = Nothing
End If
Next cell
Set OutApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Cuando se declara la instrucción
With NewMail
.From = «xxx»
.To = «xxx»
.CC = «»
.BCC = «»
.subject = «Demo Spreadsheet Attached»
.TextBody = «Let me know if you have questions about the attached spreadsheet!»
.Attachments.Add = mAttachment
End With
Da el error 438. Object does not support this property or method.
Cuando se anula la línea de Attachmente, funciona correctamente.
Tampoco funciona cuando se escribe Add.Attachement o terminado en s
Tampoco con AddAttachment
Tiene alguna respuesta?
Hola Jose! Un saludo!
Intenta de nuevo con .AddAttachment, este funciona bien en la medida que la ruta exista. La ruta por ejemplo sería:
C:\Users\Cristhian\Downloads\Documento.docx
Revisa que la ruta tenga esos backSlash(\) y que también tenga la extensión del archivo para que el código la pueda encontrar y así mismo enviarlo.
Intenta tambien para las pruebas poner la ruta directa en el codigo me refiero algo como:
.AddAttachment(«C:\Users\Cristhian\Downloads\Documento.docx»)
Esto para ver que tome bien la ruta, ya si esto funciona cambiar el texto por la celda que necesitas.
Me cuentas que tal te fue y si necesitas algo mas!
Un saludo! 😉
Hola,
cuando enviaba correos por Outlook al final en lugar de .Send usaba .Display para que me mostrara los correos y darles una última revisión antes de enviarlos, pero para este caso que se corre para Gmail no esta disponible, me indica error 438, ¿existe una instrucción similar para este caso?
Hola odigo excelente aunque tuve que luchar muchopara mis versiones de cliente de mail. Pero se me creo un problema inadvertido con consecuencias catastróficas. Envio a una lista de clientes a cada uno con un adjunto distinto. Y resulta que el AddAttachment me los fue añadiendo a cada cliente de suerte que al .ultimo le llegaron los adjuntos correspondientes a todos los demás. Error mio por no haber completado las pruebas peroproblema hasta ahora insoluble para mi. Si aguuien tiene una solución lo agradeceria mucho.
Hola, muchas gracias por este código.
Cuando intento utilizarlo me muestra el siguiente error:
«Error de transporte en la conexión al servidor».
Si alguien tiene una idea de qué puede estar mal les agradecería su ayuda.
Gracias