Guardar hoja de libro en el escritorio o enviarse por correo

Tengo un libro el cual hay una hoja que tiene macro en evento de la hoja, lo que necesito es que se guarde y se envíe por correo respetando las macros que contiene...

Osea quiero que esa hoja se guarde en el escritorio se envíe por correo con rangos especifico y cuando el destinatario lo descargue este conserve su macro en el evento...

2 Respuestas

Respuesta
-1

Este ejemplo que envía mail adjuntando libro debes cambiar el formato de guardado a xlsm para que conserve las macros

http://www.programarexcel.com/2015/03/excel-envia-mail-con-outlook-adjuntando.html 

http://www.programarexcel.com/2015/07/enviar-mail-con-excel-mediante-outlook.html 

http://www.programarexcel.com/2015/03/excel-enviar-mail-mediante-outlook.html 

http://www.programarexcel.com/2015/02/envio-mail-con-libro-adjunto-desde-excel.html 

Respuesta
3

H o l a:

Te anexo la macro para enviar por correo la hoja "Hoja1" con todo y macros.

La "Hoja1" se guarda con el nombre "hoja.xlsm" en el escritorio. Y después el archivo "hoja.xlsm" se envía por correo.

Deberás cambiar en la macro el destinatario, el asunto y el cuerpo del correo:

dam.To = "[email protected]"
dam.Subject = "Asunto"
dam.body = "Cuerpo del mensaje"


Sub GuardarHoja()
'Por.Dante Amor
    Sheets("Hoja1").Copy
    Set l2 = ActiveWorkbook
    ruta = escritorio
    If ruta <> "" Then
        arch = ruta & "\hoja.xlsm"
        l2.SaveAs Filename:=arch, FileFormat:=xlOpenXMLWorkbookMacroEnabled
        l2.Close
        Set dam = CreateObject("outlook.application").createitem(0)
        dam.To = "[email protected]"
        dam.Subject = "Asunto"
        dam.body = "Cuerpo del mensaje"
        dam.Attachments.Add arch
        dam.Display 'El correo se envía en automático
    Else
        MsgBox "No se ecuentra la carpeta Escritorio", vbCritical
    End If
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta. G r a c i a s

me sale el msgbox de error...

Me faltó esta macro, agrega el siguiente código en el mismo módulo:

Function escritorio() As String
'Por.DAM
'Referencia: http://www.ozgrid.com/forum/showthread.php?t=24985
    Dim objWSHShell As Object
    Dim strSpecialFolderPath
    On Error GoTo ErrorHandler
    Set objWSHShell = CreateObject("WScript.Shell")
        escritorio = objWSHShell.SpecialFolders("Desktop")
    Set objWSHShell = Nothing
    Exit Function
ErrorHandler:
    'MsgBox "Error NO se encuentra el folder ", vbCritical + vbOKOnly, "Error"
    escritorio = ""
End Function

me sale el outlook, no se puede evitar?

tengo otra consulta de esto.. abro otra pregunta con el titulo:

GUARDARHOJA enviar y guardar hoja con etiqueta de hoja

"¿No se puede evitar" o "no se puede enviar"?

En la macro tiene esta instrucción, para mostrar en pantalla.

Dam. Display 

Para que se envíe el correo cámbiala por esta:

Dam. Send

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas