Macro para enviar planilla excel por correo automáticamente apretando un botón

Tengo una planilla en excel 2010 en cual trabajo diariamente y esta planilla la tengo que estar enviando dos o tres veces a la semana y a las mimas personas...

Quisiera saber, si se puede crear una macro en donde yo apreté el botón en el archivo y este envíe por correo electrónico automáticamente.. A través de mi outlook.

Estos son los destinatarios

de: [email protected]

para: [email protected]

CC:[email protected];[email protected];[email protected];[email protected]

Muchas gracias.. Y atento a vuestros comentarios. Slds

1 Respuesta

Respuesta
3

Te mando mi solución, pega esta macro en tu archivo principal y hará lo que pides. Solo tienes que anotar los correos destinatarios en la parte de la macro donde te lo he anotado (anotar correo). El archivo que mandamos por correo lo he llamado planilla.xlsx

Sub ejemplo()
'por luismondelo
ruta = ActiveWorkbook.Path
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Sheets("planilla").Copy before:=Workbooks(otro).Sheets(1)
Workbooks(otro).Activate
ActiveWorkbook.SaveAs "planilla.xlsx"
ActiveWorkbook.Close False
adjunto = ruta & "\" & "planilla.xlsx"
Set parte1 = CreateObject("outlook.application")
Set parte2 = parte1.createitem(olmailitem)
parte2.to = "anotar correo"
parte2.cc = "anotar correos en copia"
parte2.Subject = "asunto"
parte2.attachments.Add (adjunto)
parte2.display
Kill "planilla.xlsx"
End Sub

recuerda finalizar la consulta

Estimado, me arroja un error, el msje dice "se ha producido el error ´9´en tiempo de ejecución: subíndice fuera del intervalo

modifique el correo. el nombre del archivo...

y asi quedo la instrucción

Sub ejemplo()
'por luismondelo
ruta = ActiveWorkbook.Path
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Sheets("planilla").Copy before:=Workbooks(otro).Sheets(1)
Workbooks(otro).Activate
ActiveWorkbook.SaveAs "Copia de informe_easy_dic.xlsx"
ActiveWorkbook.Close False
adjunto = ruta & "\" & "Copia de informe_easy_dic.xlsx"
Set parte1 = CreateObject("outlook.application")
Set parte2 = parte1.createitem(olmailitem)
parte2.to = "ví[email protected]"
parte2.cc = "ví[email protected]"
parte2.Subject = "informe despacho easy"
parte2.attachments.Add (adjunto)
parte2.display
Kill "Copia de informe_easy_dic.xlsx"
End Sub

PD:: el nombre del archivo se llama "Copia de informe_easy_dic.xlsx"

slds y atento a vuestros comentarios

vz

Veamos, lo que hace esta macro es que te manda por mail una PESTAÑA de tu libro activo llamada planilla, ¿es así?

Si lo que quieres mandar es todo el libro activo utiliza esta otra:

Sub ejemplo()
'por luismondelo
Set parte1 = CreateObject("outlook.application")
Set parte2 = parte1.createitem(olmailitem)
parte2.to = "ví[email protected]"
parte2.cc = "ví[email protected]"
parte2.Subject = "informe despacho easy"
Parte2. Attachments. Add activeworkbook. Fullname
Parte2. Display
End Sub

ya hice la prueba y quedo perfecto...

claramente guarde la macro para este archivo "copia de informe_easy_dic.xlsx" y cuando cierro y abro el archivo me encuentro que la macro no quedo guardada...

PD: le dejo en claro que cuando grabo la macro me arroja este msje que adjunto en fotohttp://c/:\Documents

saldos y atento a vuestros comentarios...

Estimado olvidelo.. porque le cambie la extensión del archivo .xlsx y lo deje en .xls

ahora me permitió guardar.. y quedo perfecto...

si lo quiero moelstar con lo ultimo..

lo que quiero es que cuando apreté el botón y salga el correo en la parte de redacción quiero que diga lo siguiente please....

Estimados

Gusto de saludar. adjunto informe actualizado con los despachos de Easy hasta la fecha.

quedo atento ante cualquier consulta o duda.

atentamente

vz

Ok, entonces inserta esta línea justo debajo de la que dice parte2. To

Parte2. Body = "Estimados Gusto de saludar. adjunto informe actualizado con los despachos de Easy hasta la fecha"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas