I know this is an Excel forum but ...

adambc

Board Regular
Joined
Jan 13, 2020
Messages
135
Office Version
  1. 2019
  2. 2016
Platform
  1. Windows
Having failed in my attempt to move a VBA macro that uses Dir from a local/network drive environment to OneDrive, I’ve now built a solution that sends an Outlook email/attachment to the intended recipient, but they still have to save the attachment to the designated folder ...

So I’ve been looking at automatically saving the attachment when the new mail is received in Outlook ...

There are several posts in several forums that tell me how to do this, but I cannot get anything to work ...

I want to save the attachment that I KNOW will be named NEWINCIDENT??????.xlsm (where ?????? is a unique string) to a named folder ...

I'm running Office 365 Home/Outlook Version 2002 (Build 12527.20278 Click-to-Run) ...

This is "typical" of the VBA code I've put into ThisOutlookSession ...
Code:
Public WithEvents olItems As Outlook.Items

Private Sub Application_Startup()
Set olItems = Session.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub olItems_ItemAdd(ByVal Item As Object)
Dim NewMail As Outlook.MailItem
Dim Atts As Attachments
Dim Att As Attachment
Dim strPath As String
Dim strName As String

If Item.Class = olMail Then
Set NewMail = Item
End If

Set Atts = Item.Attachments

If Atts.Count > 0 Then
For Each Att In Atts
'neither of the following 2 lines work
If Att.FileName = "NEWINCIDENT*.*" Then
'If InStr(LCase(Att.FileName), "NEWINCIDENT") > 0 Then
strPath = "C:\Users\User\Documents\$$$ADAM\New_Incidents_Submitted"
strName = NewMail.Subject & " " & Chr(45) & " " & Att.FileName
Att.SaveAsFile strPath & strName
End If
Next
End If
End Sub
... and Saved/restarted Outlook ...

... but it doesn't seem to do anything (at least not what I want it to!) ...

Can anyone help please - or is there a forum as responsive as this one that has a similar focus on Outlook?

Many thanks ...
 
Last edited by a moderator:

Anthony47

Well-known Member
Joined
Mar 29, 2006
Messages
1,969
Cannot test it, but I guess:
VBA Code:
Set olItems = Application.GetNamespace("MAPI").Folders("Name@Domain.xyz").Folders("Incoming emails").Items

Adapt of course the account string and the name of the Inbox folder to your context.

Bye
 

Some videos you may like

Excel Facts

Format cells as time
Select range and press Ctrl+Shift+2 to format cells as time. (Shift 2 is the @ sign).

Watch MrExcel Video

Forum statistics

Threads
1,119,011
Messages
5,575,539
Members
412,674
Latest member
emeisee
Top