View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Ron de Bruin Ron de Bruin is offline
external usenet poster
 
Posts: 11,123
Default send sheet to email as html attachment

Try this untested example

Sub Mail_ActiveSheet_HTM_File()
'You must add a reference to the Microsoft outlook Library
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim wb As Workbook
Dim strdate As String

strdate = Format(Now, "dd-mm-yy h-mm-ss")
Application.ScreenUpdating = False

ActiveSheet.Copy
Set wb = ActiveWorkbook
wb.Sheets(1).DrawingObjects.Visible = True
wb.Sheets(1).DrawingObjects.Delete

With wb
.SaveAs "Part of " & ThisWorkbook.Name _
& " " & strdate & ".htm", FileFormat:=xlHtml

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.To = "
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add wb.FullName
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")
.display 'or use .Display
End With

.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With

Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub


--
Regards Ron de Bruin
http://www.rondebruin.nl


"Ron de Bruin" wrote in message ...
Hi Pieter

I promise to add a example on my site this evening


--
Regards Ron de Bruin
http://www.rondebruin.nl


"Pieter" wrote in message ...
Thanks for your time but does not work...


"Tom Ogilvy" wrote:

Untested, but this should be along the lines of what you want:

Sub Mail_ActiveSheet_Attach_as_HTML()
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim sStr as String
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.To = "
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
sStr = SheetToHTMLFile(ActiveSheet)
.Attachments.Add sStr
.Send 'or use .Display
End With
Kill sSTr
Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub






Public Function SheetToHTMLFile(sh As Worksheet)
'Function from Dick Kusleika his site
'http://www.dicks-clicks.com/excel/sheettohtml.htm
'Changed by Ron de Bruin 04-Nov-2003
'Modified to just save the file by TWOgilvy 10/24/2005
' and pass back the fully qualified file name
Dim TempFile As String
Dim Nwb As Workbook
Dim myshape As Shape
sh.Copy
Set Nwb = ActiveWorkbook
For Each myshape In Nwb.Sheets(1).Shapes
myshape.Delete
Next
TempFile = Environ$("temp") & "\" & _
Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
Nwb.SaveAs TempFile, xlHtml
Nwb.Close False
Set Nwb = Nothing
SheetToHTMLFile = TempFile
End Function

--
Regards,
Tom Ogilvy

"Pieter" wrote in message
...
Yes want just attach it instead of reading it.
i am not good at vba..



"Pieter" wrote:

Hello Readers,

I use the following working code (thanks to ron de bruin) :

Sub Mail_Loadingorder()
Dim OutApp As Object
Dim OutMail As Object
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ThisWorkbook.Sheets("Loadingorder").Range("a1").Va lue
.CC = ""
.BCC = ""
.Subject = "Loadingorder " &
Sheets("Loadingorder").Range("h2").Value
.HTMLBody = SheetToHTML(ActiveSheet)
.Send 'or use .Display
End With
Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub


Now i want to change this to attach the sheet as an html attachment
instead
of the
the sheet is standing in the body.

Anyone know this solution..

Greetings