PC Review


Reply
Thread Tools Rate Thread

Add body message to auto-email code in Outlook

 
 
J.W. Aldridge
Guest
Posts: n/a
 
      25th Sep 2008
The following code works, but I need a slight adjustment....

I would like to ammend the following code to allow an prompt/message
box that will ask me if I would like to insert a message in the body
prior to sending the email.


Sub Mail_ActiveSheet2()
'Working in 97-2007
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

Set Sourcewb = ActiveWorkbook

'Copy the sheet to a new workbook
ActiveSheet.Copy
Set Destwb = ActiveWorkbook

'Determine the Excel version and file extension/format
With Destwb
If Val(Application.Version) < 12 Then
'You use Excel 97-2003
FileExtStr = ".xls": FileFormatNum = -4143
Else
'You use Excel 2007
'We exit the sub when your answer is NO in the security
dialog that you only
'see when you copy a sheet from a xlsm file with macro's
disabled.
If Sourcewb.Name = .Name Then
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
MsgBox "Your answer is NO in the security dialog"
Exit Sub
Else
Select Case Sourcewb.FileFormat
Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
Case 52:
If .HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsx": FileFormatNum = 51
End If
Case 56: FileExtStr = ".xls": FileFormatNum = 56
Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
End Select
End If
End If
End With

' 'Change all cells in the worksheet to values if you want
' With Destwb.Sheets(1).UsedRange
' .Cells.Copy
' .Cells.PasteSpecial xlPasteValues
' .Cells(1).Select
' End With
' Application.CutCopyMode = False

'Save the new workbook/Mail it/Delete it
TempFilePath = Environ$("temp") & "\"
TempFileName = "Mouse Recap"
'TempFileName = Sourcewb.Name & " " & Format(Now, "dd-mmm-yy h-mm-
ss")

With Destwb
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next

.SendMail Array("Mickey Mouse", "Minnie Mouse"), _
"Mouse Recap"


'Delete the file you have send
Kill TempFilePath & TempFileName & FileExtStr

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
 
Reply With Quote
 
 
 
 
Ron de Bruin
Guest
Posts: n/a
 
      25th Sep 2008
Hi J.W. Aldridge

With SendMail it is only possible to view the mail when you leave the To line empty in the code
Do you use Outlook ?? or Outlook Express or Windows Mail

.SendMail "", "This is the Subject line"



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"J.W. Aldridge" <(E-Mail Removed)> wrote in message
news:7a83a9d3-5418-41f9-852a-(E-Mail Removed)...
> The following code works, but I need a slight adjustment....
>
> I would like to ammend the following code to allow an prompt/message
> box that will ask me if I would like to insert a message in the body
> prior to sending the email.
>
>
> Sub Mail_ActiveSheet2()
> 'Working in 97-2007
> Dim FileExtStr As String
> Dim FileFormatNum As Long
> Dim Sourcewb As Workbook
> Dim Destwb As Workbook
> Dim TempFilePath As String
> Dim TempFileName As String
>
> With Application
> .ScreenUpdating = False
> .EnableEvents = False
> End With
>
> Set Sourcewb = ActiveWorkbook
>
> 'Copy the sheet to a new workbook
> ActiveSheet.Copy
> Set Destwb = ActiveWorkbook
>
> 'Determine the Excel version and file extension/format
> With Destwb
> If Val(Application.Version) < 12 Then
> 'You use Excel 97-2003
> FileExtStr = ".xls": FileFormatNum = -4143
> Else
> 'You use Excel 2007
> 'We exit the sub when your answer is NO in the security
> dialog that you only
> 'see when you copy a sheet from a xlsm file with macro's
> disabled.
> If Sourcewb.Name = .Name Then
> With Application
> .ScreenUpdating = True
> .EnableEvents = True
> End With
> MsgBox "Your answer is NO in the security dialog"
> Exit Sub
> Else
> Select Case Sourcewb.FileFormat
> Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
> Case 52:
> If .HasVBProject Then
> FileExtStr = ".xlsm": FileFormatNum = 52
> Else
> FileExtStr = ".xlsx": FileFormatNum = 51
> End If
> Case 56: FileExtStr = ".xls": FileFormatNum = 56
> Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
> End Select
> End If
> End If
> End With
>
> ' 'Change all cells in the worksheet to values if you want
> ' With Destwb.Sheets(1).UsedRange
> ' .Cells.Copy
> ' .Cells.PasteSpecial xlPasteValues
> ' .Cells(1).Select
> ' End With
> ' Application.CutCopyMode = False
>
> 'Save the new workbook/Mail it/Delete it
> TempFilePath = Environ$("temp") & "\"
> TempFileName = "Mouse Recap"
> 'TempFileName = Sourcewb.Name & " " & Format(Now, "dd-mmm-yy h-mm-
> ss")
>
> With Destwb
> .SaveAs TempFilePath & TempFileName & FileExtStr,
> FileFormat:=FileFormatNum
> On Error Resume Next
>
> .SendMail Array("Mickey Mouse", "Minnie Mouse"), _
> "Mouse Recap"
>
>
> 'Delete the file you have send
> Kill TempFilePath & TempFileName & FileExtStr
>
> With Application
> .ScreenUpdating = True
> .EnableEvents = True
> End With
> End Sub


 
Reply With Quote
 
J.W. Aldridge
Guest
Posts: n/a
 
      25th Sep 2008
I use outlook 2003.

I already know who the recipients are (i.e. Mickey Mouse, Minnie
Mouse).

It's in the body that I occassionally may want to add some additional
text.

 
Reply With Quote
 
Ron de Bruin
Guest
Posts: n/a
 
      25th Sep 2008
Use this example if you use Outlook
http://www.rondebruin.nl/mail/folder2/mail2.htm

I changed it for you

Sub Mail_ActiveSheet()
'Working in 2000-2007
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim OutApp As Object
Dim OutMail As Object
Dim Response

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

Set Sourcewb = ActiveWorkbook

'Copy the sheet to a new workbook
ActiveSheet.Copy
Set Destwb = ActiveWorkbook

'Determine the Excel version and file extension/format
With Destwb
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
Else
'You use Excel 2007
'We exit the sub when your answer is NO in the security dialog that you only
'see when you copy a sheet from a xlsm file with macro's disabled.
If Sourcewb.Name = .Name Then
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
MsgBox "Your answer is NO in the security dialog"
Exit Sub
Else
Select Case Sourcewb.FileFormat
Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
Case 52:
If .HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsx": FileFormatNum = 51
End If
Case 56: FileExtStr = ".xls": FileFormatNum = 56
Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
End Select
End If
End If
End With

' 'Change all cells in the worksheet to values if you want
' With Destwb.Sheets(1).UsedRange
' .Cells.Copy
' .Cells.PasteSpecial xlPasteValues
' .Cells(1).Select
' End With
' Application.CutCopyMode = False

'Save the new workbook/Mail it/Delete it
TempFilePath = Environ$("temp") & "\"
TempFileName = "Part of " & Sourcewb.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss")

Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)

With Destwb
.SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = "(E-Mail Removed)"
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add Destwb.FullName
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")

Response = MsgBox("Do you want to view the mail", vbYesNo, "View Mail")
If Response = vbYes Then ' User chose Yes.
.Display
Else ' User chose No.
.Send
End If

End With
On Error GoTo 0
.Close SaveChanges:=False
End With

'Delete the file you have send
Kill TempFilePath & TempFileName & FileExtStr

Set OutMail = Nothing
Set OutApp = Nothing

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub






--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"J.W. Aldridge" <(E-Mail Removed)> wrote in message
news:2918a01b-b20a-4c81-8860-(E-Mail Removed)...
>I use outlook 2003.
>
> I already know who the recipients are (i.e. Mickey Mouse, Minnie
> Mouse).
>
> It's in the body that I occassionally may want to add some additional
> text.
>


 
Reply With Quote
 
J.W. Aldridge
Guest
Posts: n/a
 
      25th Sep 2008
One more question....

I have multiple recipients. How do i set up the "To" line for multiple
recipients (internal email so first and last names only).

Thanx

 
Reply With Quote
 
al_ba
Guest
Posts: n/a
 
      26th Sep 2008
Hi Ron,

I tried the code below, I am using Outlok, XL 2003...it doesn't work, the
way I want it, is there something I need to do?


Sub Mail_workbook_Outlook_1()
'Working in 2000-2007
'This example send the last saved version of the Activeworkbook
Dim OutApp As Object
Dim OutMail As Object

Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail
.To = "(E-Mail Removed)"
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add ActiveWorkbook.FullName
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Here is my Data:

To: (E-Mail Removed)
Cc: (E-Mail Removed)

Subject: Report_092508

Body of email:

Team,

Please see attachment

Your help is much appreciated

"Ron de Bruin" wrote:

> Hi J.W. Aldridge
>
> With SendMail it is only possible to view the mail when you leave the To line empty in the code
> Do you use Outlook ?? or Outlook Express or Windows Mail
>
> .SendMail "", "This is the Subject line"
>
>
>
> --
>
> Regards Ron de Bruin
> http://www.rondebruin.nl/tips.htm
>
>
> "J.W. Aldridge" <(E-Mail Removed)> wrote in message
> news:7a83a9d3-5418-41f9-852a-(E-Mail Removed)...
> > The following code works, but I need a slight adjustment....
> >
> > I would like to ammend the following code to allow an prompt/message
> > box that will ask me if I would like to insert a message in the body
> > prior to sending the email.
> >
> >
> > Sub Mail_ActiveSheet2()
> > 'Working in 97-2007
> > Dim FileExtStr As String
> > Dim FileFormatNum As Long
> > Dim Sourcewb As Workbook
> > Dim Destwb As Workbook
> > Dim TempFilePath As String
> > Dim TempFileName As String
> >
> > With Application
> > .ScreenUpdating = False
> > .EnableEvents = False
> > End With
> >
> > Set Sourcewb = ActiveWorkbook
> >
> > 'Copy the sheet to a new workbook
> > ActiveSheet.Copy
> > Set Destwb = ActiveWorkbook
> >
> > 'Determine the Excel version and file extension/format
> > With Destwb
> > If Val(Application.Version) < 12 Then
> > 'You use Excel 97-2003
> > FileExtStr = ".xls": FileFormatNum = -4143
> > Else
> > 'You use Excel 2007
> > 'We exit the sub when your answer is NO in the security
> > dialog that you only
> > 'see when you copy a sheet from a xlsm file with macro's
> > disabled.
> > If Sourcewb.Name = .Name Then
> > With Application
> > .ScreenUpdating = True
> > .EnableEvents = True
> > End With
> > MsgBox "Your answer is NO in the security dialog"
> > Exit Sub
> > Else
> > Select Case Sourcewb.FileFormat
> > Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
> > Case 52:
> > If .HasVBProject Then
> > FileExtStr = ".xlsm": FileFormatNum = 52
> > Else
> > FileExtStr = ".xlsx": FileFormatNum = 51
> > End If
> > Case 56: FileExtStr = ".xls": FileFormatNum = 56
> > Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
> > End Select
> > End If
> > End If
> > End With
> >
> > ' 'Change all cells in the worksheet to values if you want
> > ' With Destwb.Sheets(1).UsedRange
> > ' .Cells.Copy
> > ' .Cells.PasteSpecial xlPasteValues
> > ' .Cells(1).Select
> > ' End With
> > ' Application.CutCopyMode = False
> >
> > 'Save the new workbook/Mail it/Delete it
> > TempFilePath = Environ$("temp") & "\"
> > TempFileName = "Mouse Recap"
> > 'TempFileName = Sourcewb.Name & " " & Format(Now, "dd-mmm-yy h-mm-
> > ss")
> >
> > With Destwb
> > .SaveAs TempFilePath & TempFileName & FileExtStr,
> > FileFormat:=FileFormatNum
> > On Error Resume Next
> >
> > .SendMail Array("Mickey Mouse", "Minnie Mouse"), _
> > "Mouse Recap"
> >
> >
> > 'Delete the file you have send
> > Kill TempFilePath & TempFileName & FileExtStr
> >
> > With Application
> > .ScreenUpdating = True
> > .EnableEvents = True
> > End With
> > End Sub

>
>

 
Reply With Quote
 
Ron de Bruin
Guest
Posts: n/a
 
      26th Sep 2008
Errors ?

Check out this page
http://www.rondebruin.nl/mail/problems.htm

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"al_ba" <al_814> wrote in message news:677F2CB6-C1BC-4174-AEE9-(E-Mail Removed)...
> Hi Ron,
>
> I tried the code below, I am using Outlok, XL 2003...it doesn't work, the
> way I want it, is there something I need to do?
>
>
> Sub Mail_workbook_Outlook_1()
> 'Working in 2000-2007
> 'This example send the last saved version of the Activeworkbook
> Dim OutApp As Object
> Dim OutMail As Object
>
> Set OutApp = CreateObject("Outlook.Application")
> OutApp.Session.Logon
> Set OutMail = OutApp.CreateItem(0)
>
> On Error Resume Next
> With OutMail
> .To = "(E-Mail Removed)"
> .CC = ""
> .BCC = ""
> .Subject = "This is the Subject line"
> .Body = "Hi there"
> .Attachments.Add ActiveWorkbook.FullName
> 'You can add other files also like this
> '.Attachments.Add ("C:\test.txt")
> .Send 'or use .Display
> End With
> On Error GoTo 0
>
> Set OutMail = Nothing
> Set OutApp = Nothing
> End Sub
>
> Here is my Data:
>
> To: (E-Mail Removed)
> Cc: (E-Mail Removed)
>
> Subject: Report_092508
>
> Body of email:
>
> Team,
>
> Please see attachment
>
> Your help is much appreciated
>
> "Ron de Bruin" wrote:
>
>> Hi J.W. Aldridge
>>
>> With SendMail it is only possible to view the mail when you leave the To line empty in the code
>> Do you use Outlook ?? or Outlook Express or Windows Mail
>>
>> .SendMail "", "This is the Subject line"
>>
>>
>>
>> --
>>
>> Regards Ron de Bruin
>> http://www.rondebruin.nl/tips.htm
>>
>>
>> "J.W. Aldridge" <(E-Mail Removed)> wrote in message
>> news:7a83a9d3-5418-41f9-852a-(E-Mail Removed)...
>> > The following code works, but I need a slight adjustment....
>> >
>> > I would like to ammend the following code to allow an prompt/message
>> > box that will ask me if I would like to insert a message in the body
>> > prior to sending the email.
>> >
>> >
>> > Sub Mail_ActiveSheet2()
>> > 'Working in 97-2007
>> > Dim FileExtStr As String
>> > Dim FileFormatNum As Long
>> > Dim Sourcewb As Workbook
>> > Dim Destwb As Workbook
>> > Dim TempFilePath As String
>> > Dim TempFileName As String
>> >
>> > With Application
>> > .ScreenUpdating = False
>> > .EnableEvents = False
>> > End With
>> >
>> > Set Sourcewb = ActiveWorkbook
>> >
>> > 'Copy the sheet to a new workbook
>> > ActiveSheet.Copy
>> > Set Destwb = ActiveWorkbook
>> >
>> > 'Determine the Excel version and file extension/format
>> > With Destwb
>> > If Val(Application.Version) < 12 Then
>> > 'You use Excel 97-2003
>> > FileExtStr = ".xls": FileFormatNum = -4143
>> > Else
>> > 'You use Excel 2007
>> > 'We exit the sub when your answer is NO in the security
>> > dialog that you only
>> > 'see when you copy a sheet from a xlsm file with macro's
>> > disabled.
>> > If Sourcewb.Name = .Name Then
>> > With Application
>> > .ScreenUpdating = True
>> > .EnableEvents = True
>> > End With
>> > MsgBox "Your answer is NO in the security dialog"
>> > Exit Sub
>> > Else
>> > Select Case Sourcewb.FileFormat
>> > Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
>> > Case 52:
>> > If .HasVBProject Then
>> > FileExtStr = ".xlsm": FileFormatNum = 52
>> > Else
>> > FileExtStr = ".xlsx": FileFormatNum = 51
>> > End If
>> > Case 56: FileExtStr = ".xls": FileFormatNum = 56
>> > Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
>> > End Select
>> > End If
>> > End If
>> > End With
>> >
>> > ' 'Change all cells in the worksheet to values if you want
>> > ' With Destwb.Sheets(1).UsedRange
>> > ' .Cells.Copy
>> > ' .Cells.PasteSpecial xlPasteValues
>> > ' .Cells(1).Select
>> > ' End With
>> > ' Application.CutCopyMode = False
>> >
>> > 'Save the new workbook/Mail it/Delete it
>> > TempFilePath = Environ$("temp") & "\"
>> > TempFileName = "Mouse Recap"
>> > 'TempFileName = Sourcewb.Name & " " & Format(Now, "dd-mmm-yy h-mm-
>> > ss")
>> >
>> > With Destwb
>> > .SaveAs TempFilePath & TempFileName & FileExtStr,
>> > FileFormat:=FileFormatNum
>> > On Error Resume Next
>> >
>> > .SendMail Array("Mickey Mouse", "Minnie Mouse"), _
>> > "Mouse Recap"
>> >
>> >
>> > 'Delete the file you have send
>> > Kill TempFilePath & TempFileName & FileExtStr
>> >
>> > With Application
>> > .ScreenUpdating = True
>> > .EnableEvents = True
>> > End With
>> > End Sub

>>
>>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
New Email Message in Outlook 2007 starts in Body of email not in To:field gba1818@gmail.com Microsoft Outlook 3 28th Mar 2008 01:23 AM
Email extraction from Outlook message body =?Utf-8?B?SnVsaWFu?= Microsoft Outlook Contacts 1 7th Oct 2005 06:40 PM
Auto complete in body of Outlook message writing =?Utf-8?B?UGF1bFM=?= Microsoft Outlook Discussion 3 23rd Aug 2005 04:48 PM
Unable to view source code in body of Email message =?Utf-8?B?Q0U=?= Microsoft Outlook Discussion 4 14th Jan 2005 12:29 PM
Accessing an outlook email message body TD Microsoft Outlook VBA Programming 4 2nd Nov 2004 02:45 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 11:29 PM.