Enviar correo electrónico desde Excel

Compatibilidad: Truco compatible con Excel 365Truco compatible con Excel 2016Truco compatible con Excel 2013Truco compatible con Excel 2010Truco compatible con Excel 2007

Microsoft Excel dispone de la opción para enviar correo electrónico, con una copia del libro. Pero podemos crear una macro con la cuenta de correo indicada y con el asunto deseado.

Deberemos de tener instalado un programa gestor de correo electrónico y una cuenta configurada.

Enviar correo electrónico desde Excel
  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la macro.

  4. Escribir el código de la macro:

  • ENVIAR LIBRO EXCEL. Envía una copia del libro abierto, a la cuenta y con el asunto indicado.

Sub Enviar_Correo_Libro()

On Error Resume Next

ActiveWorkbook.SendMail Recipients:="cuentacorreo@cuentacorreo.com", Subject:="Datos actualizados"

End Sub

Recipients:="cuentacorreo@cuentacorreo.com", correo electrónico del destinatario.
Subject:="Datos actualizados", asunto del correo electrónico.

  • ENVIAR HOJA1. Envía la Hoja1 del libro activo, a la cuenta y con el asunto indicado.

Sub Enviar_Correo_Hoja1()

On Error Resume Next

ActiveWorkbook.Sheets(1).Copy

With ActiveWorkbook

.SendMail Recipients:="cuentacorreo@cuentacorreo.com", Subject:=" Datos actualizados"

.Close SaveChanges:=False

End With

End Sub

Recipients:="cuentacorreo@cuentacorreo.com", correo electrónico del destinatario.
Subject:="Datos actualizados", asunto del correo electrónico.

  • ENVIAR HOJA ACTIVA Envía una copia de la hoja activa, a la cuenta y con el asunto indicado.

Sub Enviar_Correo_HojaActiva()

On Error Resume Next

ActiveSheet.Copy

With ActiveWorkbook

.SendMail Recipients:="cuentacorreo@cuentacorreo.com", Subject:="Datos actualizados"

.Close SaveChanges:=False

End With

End Sub

Recipients:="cuentacorreo@cuentacorreo.com", correo electrónico del destinatario.
Subject:="Datos actualizados", asunto del correo electrónico.

  • ENVIAR EL RANGO DESEADO Envia un rango de celdas en el cuerpo del mensaje de correo, a la cuenta y con el asunto indicado.

Sub Enviar_Correo_Rango()

ActiveSheet.Range(“A1:G10”).Select
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope

.Introduction = “Texto de entrada para el cuerpo del mensaje.”
.Item.To = “cuentacorreo@cuentacorreo.com”
.Item.Subject = “Datos actualizados”
.Item.Send

End With

End Sub

ActiveSheet.Range(“A1:G10”) Rango deseado para incluir en el cuerpo del mensaje.
.Introduction Texto que acompaña al rango de los datos en el cuerpo del mensaje.
.Item.To Cuenta de correo electrónico del destinatario.
.Item.Subject Asunto del correo.

  

Nivel de dificultad: Experto VBA-Macros Excel Experto VBA – Macros

5 comentarios en “Enviar correo electrónico desde Excel

  • Buenas tardes. Tengo una hoja de cálculo que avisa 45 días antes de que se produzca un evento, poniendo una casilla determinada con fondo rojo. Pero necesitaría que enviara un correo a la persona o personas responsables del evento, con un texto determinado que podría incluir alguna casilla de la hoja. ¿Es posible?

    Muchas gracias

    Luis

  • Hola, regularmente cuando hay un correo en el libro al seleccionarlo me abría de inmediato una pestaña del correo predeterminado para redactar y enviar.
    ¿Como puedo hacer para activar esta función?

    • Hola Nancy,

      Lo puedes realizar con hipervínculo.
      1. Ir a: Cinta de opciones / Pestaña: Insertar / Grupo: Vínculos / Hipervínculos.
      2. Ir a: Vincular a / Clic sobre: Dirección de correo electrónico.
      3. Ir a: Dirección de correo electrónico / Escribir nuestra dirección como remitente.
      4. Ir a: Asunto / Escribir el asunto del correo.
      5. Pulsar el botón Aceptar.

      Al pulsar sobre el hipervínculo del correo, abrirá outlook o el programa predeterminado con el email y el asunto definido.

      Saludos.

  • Buenas tardes,

    teníamos un archivo de excel 2007 que al hacerle doble click, abría un mensaje nuevo de outlook con la tabla que contiene el fichero excel incrustada en el mensaje. El usuario borró el archivo y la copia por error… He estado buscando macros que hagan lo mismo pero no encuentro nada. Pueden ayudarme por favor??

    Muchas gracias de antemano.

    Saludos

    • Hola Xavi,

      Respecto a tus necesidades, faltaría información como: el doble clic donde se aplica, los datos se encuentran en tabla o en rango, etc.

      Hemos incluido en el post un nuevo apartado para enviar un rango de datos.

      Respecto al doble clic se puede aplicar al evento del libro: Workbook_SheetBeforeDoubleClick

      Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *