Necesito macro para mandar mail por outlook de una hoja de exel especifica.

Necesito saber como puedo programar una macro para mandar por outlook una hoja de excel. Ej: si tengo un libro con hoja1, hoja2 y hoja3 y deseo mandar solo la hoja3 al hacer un click en un botón de comando, llegue solo esta hoja.

3 respuestas

Respuesta
2

Te mando mi solución a tu petición:

Con esta macro mandamos por mail SOLO la hoja2 en un archivo independiente que he llamdado "para_enviar.xlsx" y que lo guardo temporalmente en el path:

C:\Users\Luis\Downloads\

Tanto el nombre como el path tendrás que cambiarlos en tu caso por los que quieras en la macro.

-También tendrás que cambiar dentro de la macro las siguientes líneas:

parte2.to = destinatario

parte2.subject = asunto

parte2.body = cuerpo del mensaje

Sub ejemplo()
'por luismondelo
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Sheets("hoja2").Copy after:=Workbooks(otro).Sheets(Workbooks(otro).Sheets.Count)
ActiveWorkbook.SaveAs "C:\Users\Luis\Downloads\para_enviar"
ActiveWorkbook.Close False
Set parte1 = CreateObject("outlook.application")
Set parte2 = parte1.createitem(olmailitem)
parte2.to = "[email protected]"
parte2.Subject = "asunto"
parte2.body = "cuerto"
parte2.attachments.Add "C:\Users\Luis\Downloads\para_enviar.xlsx"
parte2.display
Kill "C:\Users\Luis\Downloads\para_enviar.xlsx"
End Sub

recuerda finalizar la consulta

Hola Luis, primero que todo, gracias por tus constantes ayudas. He probado el código de diferentes maneras y no me resulta, lo único que hace es guardar un archivo en el escritorio.

Para que te hagas una idea lo que busco es que a través de un botón de comando en un libro, al hacer click, mande un mail por outlook de una sola hoja, averiguando por allí encontré este código que me funciona perfectamente pero me manda el libro completo te lo dejo para ver si se puede hacer algo con esto:

Sub ENVIAR()
Sheets("TMS").Select
'Working in 2000-2007
'This example send the last saved version of the Activeworkbook
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.createitem(0)
On Error Resume Next
With OutMail
.to = "[email protected]"
.CC = ""
.BCC = ""
.Subject = "Seguimiento SISECO" & Month(Date) & Year(Date)
.body = "Envio planilla del seguimiento a SISECO correspondiente al mes presente."
.attachments.Add ActiveWorkbook.FullName
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

De antemano gracias.

Mi macro funciona perfectamente, está probada y envía un archivo con una única pestaña. Sigue las instrucciones que te mandé para usarla.

Hola luis estaba cometiendo un error al ingresar el path, y allí si me resultó. tengo una pequeña salvedad a ver si me terminas de ayudar resulta que cuando se envía el mail se abre el outlook se puede hacer algo en tu macro para que no se abra, pero se envíe igual el archivo desde ya gracias.

Por supuesto. Lo único que tienes que cambiar EN MI MACRO es la palabra display por send



Recuerda finalizar,

Te mando un saludo.

Respuesta
1

Tengo un problema y es que quiero mandar todo un libro de excel por mails, por medio de un botón en una macro, como se puede desarrollar

Respuesta

Hola Luis Mondelo, muchas gracias por la información funciona perfecto la macro, gracias por compartir tus conocimientos, 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas