Reputation: 67
I receive Outlook emails with the same filename daily (weekdays). I want to process the Outlook attachments that I received during the night, using VBA Excel.
I want two things:
I have written the below code. The code works but need to open the Excel workbook in the Outlook mail, not C drive:
Sub Test()
Dim WB As Workbook 'designate variables
Dim sSaveFileName As String
sSaveFileName = Format(Now() - 1, "MM-DD-YYYY") 'save as received date,
yesterday
' not needed >>>>> 'Set WB =
Workbooks.Open("C:\Users\nader\OneDrive\Documents\openthisexcel.xlsx")
Windows("openthisexcel.xlsx").Activate 'activate opened excel attachment
Sheets("Sheet1").Select
Range("A1:A50").Select
Selection.Copy 'select range and copy
Windows("macroExcel.xlsm").Activate 'activate xlsm template (another
workbook)
Sheets("Sheet1").Select
Range("A1:A50").Select
Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False 'select range
and paste from one excel to another
WB.SaveAs Filename:= _
"C:\Users\nader\OneDrive\Documents\openthisexcel.xlsx" &
sSaveFileName & ".xlsx" 'save received excel using filename and
the date it was received in Outlook
WB.Close 'close the excel attachment
End Sub
Upvotes: 2
Views: 10081
Reputation: 2854
Look at Download attachment from Outlook and Open in Excel. This does what you want from Excel.
However, you have another option, that is, to write an Outlook macro instead. See Running Outlook Macros on a Schedule. With this, you would be able to run your macro automatically daily in Outlook (as long as Outlook is opened) to extract your data. The content of the macro would be essentially the same as the one in the first link.
Upvotes: 0