Enviar datos de una hoja de Excel por correo electrónico, usando gmail

Soy profesor y tengo todas las notas de exámenes, actividades y demás en una hoja de Excel, donde también tengo los correos de padres y alumnos.

Estoy empezando con VCB y me pregunto si hay alguna manera para poder enviar las notas que tengo en Excel, por gmail, a los correos que tengo en la propia hoja de Excel, de tal forma que cada alumno o padre reciba solo el que a el le corresponde, sin necesidad de enviar un archivo y que, por lo tanto, pueda ver los datos de los demás.

1 Respuesta

Respuesta
1

Se puede enviar correo por gmail desde una macro de excel.

Sub SendGMail()
    'Para que esto funcione, desde esta url debes activar el "acceso a aplicaciones menos seguras"
    'https://www.google.com/settings/security/lesssecureapps
    'Recuerda que gmail tienen un límite de envió diario de correos
    'https://support.google.com/a/answer/166852?hl=es
    Dim objMsg
    Dim msgConf
    ' Object creation
    Set objMsg = CreateObject("CDO.Message")
    Set msgConf = CreateObject("CDO.Configuration")
    ' Server Configuration
    msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
    msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"
    msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "tucontraseña"
    msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
    msgConf.Fields.Update
    ' Email
    objMsg.To = "[email protected]"
    objMsg.From = "[email protected]"
    objMsg.Sender = "Ovidio"
    objMsg.Subject = "El asunto del correo"
    'Si quieres enviar un correo con html usa esto
    objMsg.HTMLBody = "<b>Cuerpo</b> <i>del</i> <u>correo</u>"
    'Si solo quieres enviar texto plano, usa esto
    'objMsg.TextBody = "Cuerpo del correo"
    Set objMsg.Configuration = msgConf
    ' Send
    objMsg.Send
    ' Clear
    Set objMsg = Nothing
    Set msgConf = Nothing
End Sub

Es solo un ejemplo, trata de adaptarlo a tus necesidades.

Tienes que modificar donde pone tu correo, tu contraseña, el correo del destinatario, etc.

Otra cosa importante, para que te funcione, necesitas activar el "acceso a aplicaciones menos seguras" desde esta url

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

Gracias Carlos solofice, pero la pregunta va con relación a poder mandar las notas de los exámenes a los correos que tengo en la otra columna.

Por lo que he visto, lo que me has mandado es para enviar un archivo.

Lo que yo pretendo es mandar en cada casilla de notas (por ejemplo a Alcaide González, Antonio, mandarle la nota de 6 al correo vinculado, mailto:[email protected] ).

Me pierdo para poder hacerlo

Gracias 

En realidad el ejemplo que te he pasado sirve para enviar un correo, no un archivo.

Entendía que tu principal duda estaba en enviar correos desde excel a través de gmail.

¿Te parece si me envías el archivo excel a mi correo y trato de adaptarte una macro para que haga lo que necesitas?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas