Macro Excel VBA enviar Hoja vía E-Mail

¿Cómo esta esa pascua?

Nuevamente aquí con un problema con una de tus macros

Por primera vez, iba a usar esta macro para enviar una hoja por mail y ni siquiera me dejo cambiar de dedo, jejejej.

ME da error de compilación, [IMG]http://i60.tinypic.com/saw13n.jpg[/IMG] me puso de espaldas y me mando a dormir, porque yo en estos menesteres, como lo he dicho antes, ni para cambiar una tecla, no es que no quisiera pero la mente ya no me va para ese lado.

Si prefieres que te envíe el libro, lo hare, tu dirás. Coloque algunos (pocos) comentarios para que se entendiera de que correo (mail) enviar y cuál va a recibir, lo que me falta TAMBIEN es SABER donde escribo la descripción.

Ya tengo de que correo voy a enviar y cual va a recibir, donde coloco el asunto y algo mas, me falta eso, la descripción.

Advierto que NO TENGO outlook no instalo ni instalare, JAMAS ME HA GUSTADO outlook, JAMAS, ¿por qué? No lo sé pero no me gusta, al instalar Windows o Office siempre lo quito o no lo instalo NUNCA, por eso quiero enviar el mail desde gmail o yahoo.

¿Podría alguien entendido hacer que esta macro funcione? Dejo libro contentivo de dicha macro.

1 respuesta

Respuesta
2

La macro está bien.

No veo la imagen con el error. Dime qué te dice el error y en qué línea se detiene o qué línea se marca de otro color.

Te explico algunas líneas de la macro:

En esta línea tienes que poner tu cuenta de gmail

correo = "[email protected]"

En esta otra va el correo de la otra persona:

.To = "[email protected]" 'enviar a

Y en esta otra va la descripción del correo:

.TextBody = "Cuerpo del coreo"



Sub EnviarHoja()
'Por.Dante Amor
    hoja = "Hoja1"
    correo = "[email protected]"
    passwd = "pwd"
    '
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    ruta = ThisWorkbook.Path & "\"
    nombre = Sheets(hoja).Name
    Sheets(hoja).Copy
    ActiveWorkbook.SaveAs Filename:=ruta & nombre & ".xlsx"
    ActiveWorkbook.Close False
    '
    Dim Email As CDO.Message
    '
    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") = correo
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = passwd
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    End With
    With Email
        .To = "[email protected]" 'enviar a
        .From = correo 'enviado por
        .Subject = "Cuenta de la semana" 'asunto
        '.TextBody = "Cuerpo del coreo"
        .AddAttachment ruta & nombre & ".xlsx" 'Archivo adjuntado
        .Configuration.Fields.Update
        On Error Resume Next
        .Send
    End With
    If Err.Number = 0 Then
        MsgBox "Mail enviado exitosamente"
    Else
        MsgBox "Se produjo el siguiente error: " & Err.Number & " " & Err.Description
    End If
    Set Email = Nothing
End Sub

Hola DAM, gracias por tu atención

Acabo de enviarte la imagen vía E-Mail voy a darle más tamaño para que se vea mejor y te la envío

También el error mencionado que dice:

Dice: Error de compilaciónNo se ha definido el tipo definido por el usuarioLa línea es = Dim Email As CDO.MessageNo he echo ningún cambio, además de agregarle E-mail, Passw y uno que otro comentario para mi orientación.Cuando le doy para enviar, me tira eso

Saludos

¿Tiene algo que ver la referencia de Outlook?

No la tengo porque como mencione, jamás instalo Outlook.

Aunque no use, para este fin tengo que tenerlo instalado para que me aparezca la referencia y activarla?

Hice para tener la referencia, la tengo activada, probé y aunque la tengaactivada, Microsoft Outlook, sigue igual con el error

No tiene que ver con la referencia de outlook, tiene que ver con las referencias que tienes instaladas en VBA

Creía que ya había posteado sobre esto:

Ahora quiere enviar pero al final me dice:

¿Qué será esto? ¿Tal ves sea que no logra abrir el Gmail? Pues puse en la macro el passw que es

En la macro tienes este número

CLng(465)

Intenta con CLng(25)

Lo mismo amigo Dam.

Cambie el 465 por el 25

La espera es más larga unos segundos, hasta que aparezca el aviso, me lleva algunos segundos, tal vez 20 y luego aparece el aviso de antes

No quiero mortificarte, date tu tiempo, seguiré mientras a envío NORMAL tal como lo hacia anteriormente.

Hola DAM

Probando ciertas opciones, veo que SI ENVÍA desde Yahoo a Msn (puerto 25) o gmail (puerto 465)

Servidor hotmail "smtp.live.com" puerto 25 servidor gmail "smtp.gmail.com" puerto 465 servidor yahoo "smtp.mail.yahoo.com puerto 465

Pero desde msn Msn (puerto 25) a yahoo Msn (puerto 465) NO ENVÍA, msn a gmail NO ENVÍA, gmail a yahoo NO ENVÍA, gmail a msn No ENVÍA.

Te pregunto si lo de enviar desde MSN ([email protected]) no es Hotmail pero pertenece, ¿será?

Extraño es desde gmail a otro no enviar

También tienes que buscar el correspondiente para cada correo

"smtp.gmail.com"

Si ya te funciona para gmail, no olvides valorar.

Es que Desde gmail no envía

SI ENVÍA desde Yahoo a mi [email protected] o [email protected] pero enviar desde gmail o msn no envia

Pero eso tiene que ver con tu internet o con tus puertos, porque la macro a mí me funciona para gmail

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas