Cómo sería una macro para enviar correos por gmail en Excel

Disculpa he visto tu código para mandar archivos por gmail desde una base en excel.

Estoy intentando correr la macro pero me manda el siguiente error "No se ha definido el tipo definido por el usuario

Estas son las primeras líneas del código

Sub SendMail_Gmail()
'Mod.Por.DAM
'Mod.Por.DAM
Dim Email As CDO.Message
Set Email = New CDO.Message

1 Respuesta

Respuesta
1

Revisa en el menú de VBA, Herramientas, Referencias, que tengas activa la referencia: Microsoft CDO for windows 2000 librar, marca la casilla y presiona Aceptar

Prueba nuevamente la macro

'

'

Avísame cualquier duda

'

Muchas gracias

Ya no me marca ese error

Ahora me esta marcando error en esta línea

.AddAttachment Cells(i, "E") & Cells(i, "D")

Entiendo que es el nombre o la ruta del archivo

Pero ya le cambie a todos los formatos posibles y me marca error

Yo ponga en la columna E esta ruta : D:\vale.pdf\ he probado así y de esta manera D:\vale.pdf

¿Hay algo que esta mal?

Debe ir entre comillas

. AddAttachment "D:\vale.pdf"

Si te envía otro error debes escribir exactamente qué mensaje de error te aparece, y también escribir en cuál línea se detiene la macro

Gracias por la respuesta

Lo he intentado nuevamente como me has dicho y me sale este error

"el sistema no puede encontrar el archivo especificado"

Y esta es la línea donde me marca el error

.AddAttachment Cells(i, "E") & Cells(i, "D")

Te comento que en la columna DE tengo el texto del archivo y en la columna E es donde tengo la dirección del mismo

Ya cheque que la ubicación del archivo sea la correcta y si esta en la raíz de la unidad D

Pero qué tienes exactamente en cada celda.

En esta celda Cells(i, "E") tienes que poner la ruta por ejemplo D:\

Y en esta celda Cells(i, "D") tienes que poner el nombre del archivo por ejemplo vale.pdf


Lo lógico sería al revés

.AddAttachment Cells(i, "D") & Cells(i, "E")

Y en la celda "D" D:\ y en la celda "E" vale.pdf


O realiza una prueba con esto:

. AddAttachment "D:\vale.pdf"

Revisa que en la unidad D tengas un archivo con el nombre vale.pdf


Si continúas con problemas, pon la macro completa y una imagen de lo que tienes en la hoja y otra imagen de tu explorador de archivos con los archivos de la unidad D

Y ya por último realiza una prueba quitando esta línea

. AddAttachment "D:\vale.pdf"

De esa forma podrás probar el envío del correo y después revisamos el problema de tu archivo.

R ecuerda valorar la respuesta.

ya probé como me comentaste, ya quite la linea de AddAttachment

Pero en la columna F me despliega este error

"Se produjo el siguiente error: -2147220973 Error de transporte en la conexión al servidor."

Una duda, soy nuevo aquí, quería preguntarte si califico respuesta por respuesta o al final se califica todo ?

Califica hasta que funcione la macro.

EL error es debido a la seguridad que tienes en Google, tienes que entrar a "Aplicaciones menos seguras" en el siguiente enlace

https://www.google.com/settings/security/lesssecureapps 

Y seleccionar la opción "Activar"

De esa forma podrás enviar correos desde otra aplicación.

Pon la macro completa para revisar cómo estás insertando el archivo. Y también dime exactamente qué tienes en cada celda D y E

que tal, de antemano gracias por la respuesta, ya hice lo que me comentaste y sigue mandando el error

te mando la pantalla con el error

Este código es uno que tu proporcionaste a otro usuario y es el que estoy utilizando

Sub SendMail_Gmail()
'Mod.Por.DAM
Dim Email As CDO.Message
correo = "[email protected]"
passwd = "pwd"
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
Set Email = New CDO.Message
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") = "[email protected]"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "pwd"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
End With
With Email
.To = Cells(i, "A")
.From = correo
.Subject = Cells(i, "B")
.TextBody = Cells(i, "C")

.Configuration.Fields.Update
On Error Resume Next
.Send
End With
If Err.Number = 0 Then
Cells(i, "F") = "El mail se envió con éxito"
Else
Cells(i, "F") = "Se produjo el siguiente error: " & Err.Number & " " & Err.Description
End If
Set Email = Nothing
Next
End Sub

Al inicio de la macro tienes estas líneas:

correo = "[email protected]"
Passwd = "pwd"

En ellas tienes que poner tu cuenta de Gmail y el password que utilizas para entrar a tu Gmail, ¿las estás cambiando?

No pongas esos datos en este foro, solamente actualiza la macro y vuelve a probar.

si si las he cambiado, solo que aquí las quite

Pues el error está en la conexión, tal vez tu servidor no tiene permisos para conectarse de esa forma con el servidor de google, estás en alguna empresa, tiene algún firewall.

Cambia este dato

CLng(465)

Por este:

25

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas