![]() |
|
#1
|
|||
|
|||
![]()
Hi
I get some emails each day with an Excel workbook attached that contains data on its first worksheet. I copy and paste data into my local workbook. Is there a way to have VBA in outlook that after receiving email, open the attachment, copy the data and past it into the local workbook and close the attachment? thanks regards |
#2
|
||||
|
||||
![]()
That would be fairly straightforward. You would need to set an Outlook rule to identify the incoming messages and run a script from that rule. The script would save then open the attachment in Excel, then open the target workbook and do whatever processing you require before closing the attachment and optionally deleting it from the filing system. Something like the following:
Code:
Sub ProcessAttachment(Item As Outlook.MailItem) Dim olAtt As Attachment Dim strFilename As String Dim xlApp As Object Dim xlWB As Object Dim xlTarget As Object Const strTarget As String = "C:\Path\TargetBookName.xlsx" If Item.Attachments.Count > 0 Then For Each olAtt In Item.Attachments If Right(olAtt.Filename, 4) = "xlsx" Then strFilename = "C:\Path\" & olAtt.Filename olAtt.SaveAsFile strFilename Set xlApp = GetObject(, "Excel.Application") If Err <> 0 Then Set xlApp = CreateObject("Excel.Application") End If On Error GoTo 0 Set xlWB = xlApp.workbooks.Open(strFilename) Set xlTarget = xlApp.workbooks.Open(strTarget) '+++++++++++++++++++++++++++++ 'Do stuff with the 2 workbooks '+++++++++++++++++++++++++++++ xlWB.Close 0 'Close attachment without saving 'Kill strFilename 'Optional delete the saved attachment Set xlWB = Nothing Set xlTarget = Nothing Set xlApp = Nothing Exit For End If Next olAtt End If End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#3
|
|||
|
|||
![]()
Thanks
I will test and tell you what happens. But Where should I paste this code? ThisOutlookSession or a Module? |
#4
|
|||
|
|||
![]()
I wrote this code base on my googling data, in thisOutlookSession.
this code is like the one you kindly wrote for me. But when I receive a new mail, nothing happens Quote:
|
#5
|
||||
|
||||
![]() Quote:
You can test it by selecting a message and running the following: Code:
Sub Test() Dim olMsg As MailItem Set olMsg = ActiveExplorer.Selection.Item(1) ProcessAttachment olMsg End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
osama6767 | Excel | 3 | 05-28-2014 06:29 AM |
How to Copy data from Outlook mail and Paste it in a Excel sheet? | padhu1989 | Outlook | 0 | 09-11-2012 04:07 AM |
![]() |
fuchsd | Word | 6 | 10-25-2011 05:52 AM |
Problem with MS Outlook when open email with attached file | moniros | Outlook | 0 | 03-01-2009 12:50 AM |
Outlook xp slow when Browsing to attached a file | jmelgar1 | Outlook | 0 | 09-23-2008 01:49 PM |