Question for dummy

  • Thread starter Yuri Weinstein \(HotMail\)
  • Start date
Y

Yuri Weinstein \(HotMail\)

Hi all,

I am trying to do the following:

- have and Excel file that can be modified by multiple users
- when user modifies it on close, save it as HTML and
- send an email (with Active Sheet in the email body)

I can get email be embedded into email body.
Thank in advance for your help.

YuriW
 
Y

Yuri Weinstein \(HotMail\)

It's actually does not work for me. Any tricks I have to have?

Thx
 
R

Ron de Bruin

Hi Yuri

Do you have Outlook ?
Do you set the reference (read the page)
Do you copy the function also in the module
 
Y

Yuri Weinstein \(HotMail\)

Thx Ron,

I think I got it working. Is there a way to preserve format of XLS file?
 
Y

Yuri Weinstein \(HotMail\)

Here is the code I came up with.

Two problems:

1. When user clicks No to send an email - I get an error
2. I get an error in line "Set ts =
fso.GetFile(TempFile).OpenAsTextStream(1, -2)" on close too

Any help is appreciated.

Thx

=================================================

Private Sub Workbook_Open()
'WriteTwiki
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
WriteTwiki
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Mail_ActiveSheet_Body
End Sub
Sub Mail_ActiveSheet_Body()
Dim OutApp As Object
Dim OutMail As Object
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "(e-mail address removed)"
.CC = ""
.BCC = ""
.Subject = "Test Systems useage has changed, please review"
.HTMLBody = SheetToHTML(ActiveSheet)
'.Display
.Send 'or use .Display
End With
Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
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

Sub WriteTwiki()
ActiveWorkbook.SaveAs _
Filename:="\\files.mercedsystems.com\qa-public\QA\DOC\instance_usage_new.html",
_
FileFormat:=xlHtml
'ActiveWorkbook.SendMail Recipients:="(e-mail address removed)"
End Sub

===============================================
 
A

Angus

I use the following VBA and it really helps.

However, if i want to add a textbody from cell A1 at worksheet "data" before
the sheettohtml, how?
 

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