¿De qué manera puedo con una macro hacer un filtro en excel y luego enviar la hoja filtrada como archivo adjunto vía mail?

Me gustaría que pudieras ayudarme, tengo un archivo excel de lista de precio y pedidos, lo que quiero es una macro que al pulsar el botón REALIZAR PEDIDO, agrupe filtrando solo los campos no vacios y guardarlo en el escritorio con nombre PEDIDO + CAMPO C10 + FECHA CAMPO C9, luego enviarlo por mail a un correo que siempre será el mismo con un asunto que siempre será el mismo.

1 Respuesta

Respuesta
1

Mi macro crea un pdf de mi hoja con el nombre del cliente y la fecha y la envía vía outlook

Modifícala a tu gusto

Sub enviar_correo_outlook()
'aneudys ¨PUSHYMAN¨
Application.DisplayAlerts = False
ruta = ActiveWorkbook.Path & "\"
mio = ActiveWorkbook.Name
ped = "pedido"
cliente = Range("D5").Value
correo = "[email protected]"
nombre = ped & "_" & cliente & "##" & Day(Date) & "_" & Month(Date) & "_" & Year(Date)
Sheets("hoja1").ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & nombre
Set parte1 = CreateObject("outlook.application")
Set parte2 = parte1.createitem(olmailitem)
parte2.to = correo
parte2.Subject = "Envío de su factura nº " & ped
parte2.Body = "Estimados Sres.:" & Chr(13) & _
"Nos complace realizar el envío de la factura del asunto, según nuestro acuerdo." _
& Chr(13) & "Atentamente..."
parte2.attachments.Add ruta & nombre & ".pdf"
parte2.send
End Sub

No olvide valor valos si te silve

Hola, muchas gracias por tu respuesta.

Pero necesito guardarlo en formato Excel, no sé mucho de VBA, sólo grabar macros sencillas. Cómo sería para ignorar lo de enviar el correo outlook, sólo quiero poder guardar el archivo en el escritorio (cualquier escritorio, que funcione no sólo para mi laptop sino para cualquier ordenador), y que el archivo se guarde según un concatenar de textos  fechas que tengo en las celdas del libro?

Gracias!!!

Sub guardahoja()
'aneudys ¨pushyman¨
mio = ActiveWorkbook.Name
nombre = Range("a1").Value & Range("b1").Value
ruta = ActiveWorkbook.Path & "\"
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Range("a1:k100").Copy
Workbooks(otro).Activate
Sheets(1).Select
Range("a1").Select
ActiveSheet.Paste
ActiveWorkbook.SaveAs ruta & nombre
ActiveWorkbook.Close False
MsgBox "Se ha grabado el siguiente archivo:" & Chr(13) & nombre
End Sub

Nombre solo cambialo por las celda que quiere para darle el nombre si quiere agrgarle mas celda solo & y el range de celda

Ruta sera la mis donde se abra el libro si lo abre en el escritorio se guardan en el escritorio y si es en una ca`peta se guarda en esa carpeta

Range("a1:k100"). Copy puedes varialo a tu gusto solo pones desde donde quieres empezar y terminar

No olvides valora si te silve

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas