Enviar por correo la hoja activa

Con esta macro crearás un archivo nuevo a partir de la hoja activa, y a continuación envia dicho archivo por correo, usando Outlook.

Código de la macro

Sub CrearArchivoNuevoEnviarPorCorreo()

Dim Hoja As Worksheet
Dim NombreArchivo As String
Dim Rutalibro As String

Set Hoja = ActiveSheet
NombreArchivo = ActiveWorkbook.Name

Hoja.Copy
ActiveWorkbook.Save

Rutalibro = ActiveWorkbook.Path
Rutalibro = Rutalibro & «\» & ActiveWorkbook.Name

ActiveWorkbook.Close

‘Apunte importante:
‘Para que funcione esta macro hay que ir a la ficha Herramientas del mismo editor de Visual Basic, y darle a referencias.
‘ahi dentro busca el check «Microsoft Outlook 16.0 Oject Library» y marcalo.

Dim OutlookApp As Outlook.Application
Dim mItem As Outlook.MailItem

Dim Correo As String
Dim Asunto As String
Dim Mensaje As String
Dim Archivo As String

Set OutlookApp = New Outlook.Application

Correo = InputBox("Correo del destinatario", "Excel y Finanzas")

If Correo = "" Then Exit Sub

Asunto = InputBox("Indique el asunto", "Excel y Finanzas")

If Asunto = "" Then Exit Sub

Mensaje = InputBox("Escribe el mensaje que desea enviar", "Excel y Finanzas")

If Mensaje = "" Then Exit Sub

Archivo = Rutalibro

If Archivo = "" Then Exit Sub



Set mItem = OutlookApp.CreateItem(olMailItem)

With mItem

    .To = Correo
    .Subject = Asunto
    .Body = Mensaje
    .Attachments.Add Archivo
    .Send

End With

Windows(NombreArchivo).Activate

End Sub

Como copiar y pegar el código

Como insertar una macro en la cinta de opciones personalizada

Descargar plantilla