Macro works in one workbook but not in another

S

sungen99

This program will take a sheet and send it as an embedded email. It
works perfectly in a workbook with worksheets (sheet1)(sheet2)(sheet3)

For some reason when I enter this code into a workbook I actually need
to use it for whos worksheet name is (Recap) it sends the email just
fine BUT the contents of the mail are blank. In other words it does
not show the worksheet.

Any ideas?


Sub Mail_ActiveSheet_Body()
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
..To = "(e-mail address removed)"
..CC = ""
..BCC = ""
..Subject = "This is the Subject line"
..HTMLBody = RangetoHTML2
..Send 'or use .Display
End With
Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
 
S

sungen99

Shellfish bump.

Sorry I have been working on fixing it. and I’ll be…… it just wont work
right.
 
S

sungen99

Ron when i use that code i get a compile error.

Sub or Function not defined.

the code its pointing too is:

..HTMLBody = SheetToHTML(ActiveSheet)

it does not like the "SheetToHTML(ActiveSheet)" part.

am i missing a refenrence perhaps?
 
R

Ron de Bruin

You miss the function that is on the webpage
Copy it also in the module

Like this

Sub Mail_ActiveSheet_Body()
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.To = "(e-mail address removed)"
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.HTMLBody = SheetToHTML(ActiveSheet)
.Send 'or use .Display
End With
Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub


Public Function SheetToHTML(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
Dim TempFile As String
Dim Nwb As Workbook
Dim myshape As Shape
Dim fso As Object
Dim ts As Object
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 fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
SheetToHTML = ts.ReadAll
ts.Close
Set ts = Nothing
Set fso = Nothing
Set Nwb = Nothing
Kill TempFile
End Function
 
S

sungen99

AHHHHHHHHHH THANK YOU!!!!!!

i understand. been working on this for 4 hours now.. hehe.
 
R

Ron de Bruin

Hi sungen99

Instead of
.HTMLBody = SheetToHTML(ActiveSheet)

You can also use this

..HTMLBody = SheetToHTML(Sheets("YourSheetName"))
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top