Note: The other languages of the website are Google-translated. Back to English

¿Cómo enviar un correo electrónico a través de Outlook cuando el libro de trabajo se guarda en Excel?

Este artículo habla sobre el envío de un correo electrónico a través de Outlook cuando se guarda un libro específico en Excel. Haz lo que muestra el tutorial.

Envíe un correo electrónico a través de Outlook cuando el libro de trabajo se guarde con el código VBA


Envíe un correo electrónico a través de Outlook cuando el libro de trabajo se guarde con el código VBA

Para enviar un correo electrónico a través de Outlook cuando el libro de trabajo está guardado en Excel, haga lo siguiente.

1. Primero guarde el libro de trabajo como un libro de Excel habilitado para macros. Hacer clic Declarar impuestos > Guardar como. En la Guardar como cuadro de diálogo, seleccione una carpeta para guardar el libro, asígnele un nombre en el cuadro Nombre de archivo, seleccione Libro de Excel habilitado para macros de Guardar como tipo lista desplegable y luego haga clic en el a Salvar botón. Ver captura de pantalla:

2. Abra el libro de Excel habilitado para macros que acaba de guardar, presione el otro + F11 teclas simultáneamente para abrir el Microsoft Visual Basic para aplicaciones ventana.

2. En el Microsoft Visual Basic para aplicaciones ventana, haga doble clic ThisWorkbook en la barra izquierda, luego copie y pegue el siguiente código VBA en el ThisWorkbook ventana de código. Ver captura de pantalla:

Código de VBA: envíe un correo electrónico cuando se guarde el libro de trabajo

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20181102
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .CC = ""
        .Subject = "The workbook has been saved"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

Nota:: Reemplace el Correo electrónico con la dirección de correo electrónico del destinatario en línea .To = "Dirección de correo electrónico" y cambie el Cc, Asunto y los campos del cuerpo en el código VBA según lo necesite.

3. presione el otro + Q teclas simultáneamente para cerrar el Microsoft Visual Basic para aplicaciones ventana.

A partir de ahora, cuando actualice el libro de trabajo y lo guarde, se creará un correo electrónico automáticamente con el libro de trabajo actualizado adjunto. Haga clic en el Enviar botón para enviar el correo electrónico. Ver captura de pantalla:

Nota:: El código VBA solo funciona cuando usa Outlook como su programa de correo electrónico.


Artículos relacionados:


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (17)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
Cómo automatizar la notificación por correo electrónico en VBA en función del rango de fechas, sin tener que ver la ventana emergente de permiso de seguridad para permitir que VBA envíe el correo electrónico.
Este comentario fue minimizado por el moderador en el sitio
Gracias. Consulta: utilizando esta misma rutina, ¿cómo podría enviar el correo a un correo específico dependiendo del valor de otra celda?
Este comentario fue minimizado por el moderador en el sitio
Estimados todos, me gustaría preguntar cómo adjuntar un enlace funcional a cierta carpeta en el servidor, si pego el enlace, aparece en el libro de trabajo como texto sin formato y, por lo tanto, no funciona en el correo electrónico recibido, ¿cómo puedo convertirlo en enlace, para que los destinatarios puedan hacer clic en él?
Me gustaría usar esta forma en lugar de enviar el archivo de Excel adjunto.
Gracias al asesoramiento
Este comentario fue minimizado por el moderador en el sitio
Hola Robert
Lo siento, no puedo ayudar con esto, bienvenido a publicar cualquier pregunta sobre Excel en nuestro foro: https://www.extendoffice.com/forum.html. Obtendrá más soporte de Excel de nuestros profesionales u otros fanáticos de Excel.
Este comentario fue minimizado por el moderador en el sitio
Puse esto en el cuerpo del correo electrónico y funcionó para mí...
"archivo:///Z:\dir1\dir2\dir3\Test1.xlsm"
Este comentario fue minimizado por el moderador en el sitio
¡Hola, buen artículo! Una cosa que he estado tratando de lograr con esto es adjuntar el estado actual del libro de trabajo al correo electrónico.

Por el momento, solo envía el estado original del archivo y no incluye ningún cambio que haya realizado el usuario.

¿Alguna idea sobre cómo implementar esto usando una macro?
Este comentario fue minimizado por el moderador en el sitio
Hola Chris,
El código ha sido actualizado con el problema resuelto, inténtalo. Gracias por tu comentario.
Este comentario fue minimizado por el moderador en el sitio
Hola Chris,

Me he encontrado con el mismo problema.
Actualmente los códigos se utilizan en el módulo "beforesave".
Lo que significa que el correo electrónico enviará la hoja de cálculo que se guardó antes.

Hay otro módulo "después de guardar".
Apliqué el código en este módulo y funcionó de maravilla.
Este comentario fue minimizado por el moderador en el sitio
¿Cómo se manejaría esto para un documento de Office 365? Se está guardando automáticamente.
Este comentario fue minimizado por el moderador en el sitio
¿Hay alguna manera de que el correo electrónico automatizado se cifre automáticamente?
Este comentario fue minimizado por el moderador en el sitio
Hola Mike,
Lo siento, no puedo ayudar a resolver este problema. Gracias por tu comentario.
Este comentario fue minimizado por el moderador en el sitio
¡Hola! Muchas gracias por esta guía :-) Me gustaría hacer algo más en este código: enviar un correo electrónico según los países. Significa que tengo que crear comandos con if y select. ¿Derecha? Ya eliminé el archivo adjunto del correo electrónico. En su lugar, me gustaría agregar el enlace con la ruta a la carpeta. Pero cuando se ejecuta la macro, el comando no es válido :-(
Agradezco cada ayuda de cómo agregarlo allí.
Este comentario fue minimizado por el moderador en el sitio
Hola, ¿cómo puedo incluir datos de celda en el campo "cc" del correo electrónico?
Este comentario fue minimizado por el moderador en el sitio
Hola Brent,
Supongamos que desea incluir el valor en la celda a7 en el campo "cc" del correo electrónico, intente con el siguiente VBA.

Libro de trabajo secundario privado_AfterSave (ByVal Success como booleano)

'Actualizado por Extendoffice 20200628

Dim xOutApp como objeto

Dim xMailItem como objeto

Dim xName como cadena

On Error Resume Next

Establecer xOutApp = CreateObject("Outlook.Aplicación")

Establecer xMailItem = xOutApp.CreateItem(0)

xName = ActiveWorkbook.FullName

Con xMailItem

.To = "Dirección de correo electrónico"

.CC = Rango("a7").Valor


.Subject = "El libro de trabajo ha sido guardado"

.Body = "Hola", & Chr(13) & Chr(13) & "El archivo ahora se actualizó".

.Adjuntos.Agregar xNombre

.Monitor

'.enviar

End With

Establecer xMailItem = Nada

Establecer xOutApp = Nada

End Sub
Este comentario fue minimizado por el moderador en el sitio
Estimados todos, ¿alguien puede ayudarme? Soy un novato en la codificación de VBA, hice algunas modificaciones, pero ¿cómo puedo enviar un correo electrónico si el libro de trabajo está guardado y si el nombre de usuario es diferente, como si el nombre de usuario de la estación es glade2, luego envíe un correo electrónico si el libro de trabajo está guardado, de lo contrario no lo envíe.

Muchas gracias por su apoyo
Este comentario fue minimizado por el moderador en el sitio
hola florin,
No entendí tu punto. ¿Qué representa tu nombre de usuario?
Este comentario fue minimizado por el moderador en el sitio
Hola crystal, gracias por tu respuesta, usernane es usernane del entorno, y lo he hecho, usé una función if y salí de sub.
Muchas gracias.
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL