VBA Email Send Sheet. With Macro still attached to the sheet

jamesmev

Board Regular
Joined
Apr 9, 2015
Messages
233
Office Version
  1. 365
Platform
  1. Windows
I am using VBA to send a sheet via email. However, there are macros on that sheet that need to be enabled.
The recipient is getting the sheet but without the needed Macros.

How do I my sheet to send the macros associated with that sheet?

Here is my current code:



Sub Mail_ActiveSheet()
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
Application.Run Macro:="test1st"


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


Set Sourcewb = ActiveWorkbook


'Copy the ActiveSheet to a new workbook
Sheets("Email").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 = ".xlsm": FileFormatNum = -4143
Else
'You use Excel 2007-2016
Select Case Sourcewb.FileFormat
Case 51: FileExtStr = ".xlsm": FileFormatNum = 51
Case 52:
If .HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsm": FileFormatNum = 51
End If
Case 56: FileExtStr = ".xlsm": FileFormatNum = 56
Case Else: FileExtStr = ".xlsm": FileFormatNum = 50
End Select
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 = "Frequency Increase Request" & " " & Format(Now, "MM-dd-yy")


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


With Destwb
.SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.CC = Sheets("RouteChange").Range("I27")
.BCC = ""
.Subject = "Frequency Increase Request"
.Body = "Please review the attached and approve or deny this request."
.Attachments.Add Destwb.FullName
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")
.Display
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
 

Excel Facts

What does custom number format of ;;; mean?
Three semi-colons will hide the value in the cell. Although most people use white font instead.
You are essentially copying a worksheet in these lines of code.
Code:
[COLOR=#008000]'Copy the ActiveSheet to a new workbook[/COLOR]
[COLOR=#333333]Sheets("Email").Copy[/COLOR]
[COLOR=#0000FF]Set[/COLOR][COLOR=#333333] Destwb = ActiveWorkbook[/COLOR]

If the "Email" sheet has code in it it will test TRUE for
Code:
.HasVBAProject
and your workbook will be saved as an .xlsm otherwise it will be saved as a normal .xlsx file.

In order to solve your issue you can do two things.

1. Put your code in the "Email" worksheet code module (If applicable)
2. Delete all other sheets that are not relevant and save a copy of your file with a different name and attach it to your email and then delete the file assuming it's no longer needed..
 
Upvote 0
The Sheet is being sent as a .xlsm
When that sheet is received the VBA is there.
It is giving Macro not enabled errors.

However, they are fully enabled.
 
Upvote 0
Not sure what's going on. I can't reproduce the error you reference. As you mention.....if the macros are fully enabled on the recipients machine I'm not sure why they wouldn't work.
 
Upvote 0

Forum statistics

Threads
1,214,394
Messages
6,119,262
Members
448,880
Latest member
aveternik

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