Disable security message when automating emails

Lizard07

Board Regular
Joined
Jul 20, 2011
Messages
103
Hello - I have code that turns of the security warning when sending out an automated email through VBA, but I'm not sure where it belongs in the code.

OlSecurityManager.DisableOOMWarnings = True

OlSecurityManager.DisableOOMWarnings = False

Thanks!
 

Excel Facts

Convert text numbers to real numbers
Select a column containing text numbers. Press Alt+D E F to quickly convert text to numbers. Faster than "Convert to Number"
Hi,
the disable would be at the very begining of the code and enable again at the end (after email sent).
 
Upvote 0
Unfortunately its still not working, perhaps its a different code depending on what version of Excel/VBA that you have? - I have Excel 2003.

Also, I have three sets of code to send out this email: 1) Boiler string for the signature, 2) HTML range, and 3) the actual email body, subject, to/from, etc...Where would the code go on this? Let me know if you need to see some of the coding.
 
Upvote 0
Hi I would put the disable right at the beginning of the email sub and back on just after you sent it. How are you sending the email? Different ways require you to say ok some don't
 
Upvote 0
I tried putting it right before the sub and then right before it goes out, but it doesn't seem to do anything - perhaps I am doing something wrong?

This is the code I am using to send the email, it uses an HTML function to copy data from Excel sheet and paste it into the body of email:

Sub LEQO_Status_Update()
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim SigString As String
Dim Signature As String

'----------LEQO-----------------
'This filters the past due report down to one carrier
Sheets("3PPD").Select
Rows("3:3").Select
Selection.AutoFilter
Selection.AutoFilter Field:=6, Criteria1:="LEQO"

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strbody = "<p style='font-family:arial;font-size:12'>Good Morning,<br></H3>" & _
"<p style='font-family:arial;font-size:12'>Can I get a status update and Tr#'s on the following shipments before 1000, please?<br>"
SigString = "C:\Documents and Settings\eblair\Application Data\Microsoft\Signatures\Standard.htm"
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
Set rng = Nothing
On Error Resume Next
'Only the visible cells in the selection
'Set rng = Selection.SpecialCells(xlCellTypeVisible)
'You can also use a range if you want
Set rng = Sheets("3PPD").Range("B3:E15").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "email@email.com"
.CC = ""
.BCC = ""
.Subject = "Status Update - LEQO"
.HTMLBody = strbody & RangetoHTML(rng) & Signature
.Send
End With
On Error GoTo 0
Sheets("3PPD").Select
Rows("3:3").Select
Selection.AutoFilter
With Application
.EnableEvents = True
.ScreenUpdating = True
End With

Set OutMail = Nothing
Set OutApp = Nothing

End Sub

Function RangetoHTML(rng As Range)
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook

TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

'Copy the range and create a new workbook to past the data in
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
'.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With

'Publish the sheet to a htm file
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With

'Read all data from the htm file into RangetoHTML
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.readall
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")

'Close TempWB
TempWB.Close savechanges:=False

'Delete the htm file we used in this function
Kill TempFile

Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function


Thank-you!
 
Upvote 0
HI, please see below where I would place it, if this doesnt work then it may be a security issue with the macro, ie settings in excel to trust vba.
good luck

I tried putting it right before the sub and then right before it goes out, but it doesn't seem to do anything - perhaps I am doing something wrong?

This is the code I am using to send the email, it uses an HTML function to copy data from Excel sheet and paste it into the body of email:

Sub LEQO_Status_Update()
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim SigString As String
Dim Signature As String

'----------LEQO-----------------
'This filters the past due report down to one carrier
Sheets("3PPD").Select
Rows("3:3").Select
Selection.AutoFilter
Selection.AutoFilter Field:=6, Criteria1:="LEQO"

'-------------->disable here<---------------

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

strbody = "
Good Morning,


" & _

"Can I get a status update and Tr#'s on the following shipments before 1000, please?
"

SigString = "C:\Documents and Settings\eblair\Application Data\Microsoft\Signatures\Standard.htm"
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
Set rng = Nothing
On Error Resume Next
'Only the visible cells in the selection
'Set rng = Selection.SpecialCells(xlCellTypeVisible)
'You can also use a range if you want
Set rng = Sheets("3PPD").Range("B3:E15").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "email@email.com"
.CC = ""
.BCC = ""
.Subject = "Status Update - LEQO"
.HTMLBody = strbody & RangetoHTML(rng) & Signature
.Send
End With
On Error GoTo 0
Sheets("3PPD").Select
Rows("3:3").Select
Selection.AutoFilter
With Application
.EnableEvents = True
.ScreenUpdating = True
End With

Set OutMail = Nothing
Set OutApp = Nothing

'--------------------->Enable Here<----------------

End Sub



Thank-you!
 
Upvote 0

Forum statistics

Threads
1,224,583
Messages
6,179,681
Members
452,937
Latest member
Bhg1984

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top