I have a mail service who is good and i want to put my active workbook on my mail but not on xlsm, i want on xlsx.
I tried a solution but the convertion don't work (error).
My code :
Private Sub CommandButton4_Click()
Dim TheMail As Variant
Dim Path_name As String
Dim File_name As String
Dim Complete_File_name As String
Set LeMail = CreateObject("Outlook.Application")
File_name = ActiveWorkbook.Name
File_name , FileFormat:=xlOpenXMLWorkbook
Path_name = ThisWorkbook.Path
Complete_File_name = Path_name & "\" & File_name
With TheMail.CreateItem(olMailItem)
.Subject = "Prerequisite"
.To = ""
.Body = ""
.Attachments.Add Complete_File_name & ".xlsx"
.Display
End With
End Sub
Thanks you for all of your response, Have a nice day !
CodePudding user response:
You cannot simple add a xlsx extension! They are two different workbooks. You should firstly save it as xlsx, to make the conversion you are talking about. Anyhow, a file having the name you try attaching does not even exist...
Please, use the next way:
Private Sub CommandButton4_Click()
Dim TheMail As Variant, Path_name As String, File_name As String
Dim Complete_File_name As String
Set TheMail = CreateObject("Outlook.Application")
File_name = ActiveWorkbook.name
Path_name = ThisWorkbook.path
Complete_File_name = Path_name & "\" & left(File_name, InStrRev(File_name, ".") - 1) & ".xlsx"
ActiveWorkbook.saveas Complete_File_name, xlWorkbookDefault
With TheMail.CreateItem(olMailItem)
.Subject = "Prerequisite"
.To = ""
.body = ""
.Attachments.Add Complete_File_name
.Display
End With
End Sub
If you do not need the 'converted' xlsx file, you can delete it. After closing, or use SaveCopyAs instead of saveAs, to not be necessary to close it.
