+ Reply to Thread
Results 1 to 6 of 6

Saving attachments from Outlook

  1. #1
    Jamie
    Guest

    Saving attachments from Outlook

    Hi there,

    I am trying to write a macro that will search my outlook inbox for a
    specific subject heading then save the attatchment to a specific folder.

    I have picked up this code with help from this site but my VBA skills are
    extremely limited and I can't get it to work. When I run it It stops at the
    first line and gives this error message:

    Compile error:

    User-defined type not defined

    Code:

    Sub SaveAttachments()

    Set myOLApp = CreateObject("Outlook.Application")

    Dim olApp As Outlook.Application
    Dim olNs As NameSpace
    Dim Fldr As MAPIFolder
    Dim MoveToFldr As MAPIFolder
    Dim olMi As MailItem
    Dim olAtt As Attachment
    Dim MyPath As String
    Dim i As Long

    Set olApp = New Outlook.Application
    Set olNs = olApp.GetNamespace("MAPI")
    Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
    Set MoveToFldr = Fldr.Folders("eisreq")
    MyPath = "I:\EIS\Forms\"

    For i = Fldr.Items.Count To 1 Step -1
    Set olMi = Fldr.Items(i)
    If InStr(1, olMi.Subject, "EIS") > 0 Then
    For Each olAtt In olMi.Attachments
    If olAtt.Filename = "EIS Request.xls" Then
    olAtt.SaveAsFile MyPath & olMi.SenderName & ".xls"
    End If
    Next olAtt
    olMi.Save
    olMi.Move MoveToFldr
    End If
    Next i

    Set olAtt = Nothing
    Set olMi = Nothing
    Set Fldr = Nothing
    Set MoveToFldr = Nothing
    Set olNs = Nothing
    Set olApp = Nothing

    End Sub


    Can anyone tell me what I'm doing wrong?

    Any help would be greatfully appreciated.

    Thanks in advance

    Jamie

  2. #2
    Ron de Bruin
    Guest

    Re: Saving attachments from Outlook

    Hi Jamie

    You must set a reference (VBE - Tools -
    References) to the Outlook Object Library.


    --
    Regards Ron de Bruin
    http://www.rondebruin.nl



    "Jamie" <[email protected]> wrote in message news:[email protected]...
    > Hi there,
    >
    > I am trying to write a macro that will search my outlook inbox for a
    > specific subject heading then save the attatchment to a specific folder.
    >
    > I have picked up this code with help from this site but my VBA skills are
    > extremely limited and I can't get it to work. When I run it It stops at the
    > first line and gives this error message:
    >
    > Compile error:
    >
    > User-defined type not defined
    >
    > Code:
    >
    > Sub SaveAttachments()
    >
    > Set myOLApp = CreateObject("Outlook.Application")
    >
    > Dim olApp As Outlook.Application
    > Dim olNs As NameSpace
    > Dim Fldr As MAPIFolder
    > Dim MoveToFldr As MAPIFolder
    > Dim olMi As MailItem
    > Dim olAtt As Attachment
    > Dim MyPath As String
    > Dim i As Long
    >
    > Set olApp = New Outlook.Application
    > Set olNs = olApp.GetNamespace("MAPI")
    > Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
    > Set MoveToFldr = Fldr.Folders("eisreq")
    > MyPath = "I:\EIS\Forms\"
    >
    > For i = Fldr.Items.Count To 1 Step -1
    > Set olMi = Fldr.Items(i)
    > If InStr(1, olMi.Subject, "EIS") > 0 Then
    > For Each olAtt In olMi.Attachments
    > If olAtt.Filename = "EIS Request.xls" Then
    > olAtt.SaveAsFile MyPath & olMi.SenderName & ".xls"
    > End If
    > Next olAtt
    > olMi.Save
    > olMi.Move MoveToFldr
    > End If
    > Next i
    >
    > Set olAtt = Nothing
    > Set olMi = Nothing
    > Set Fldr = Nothing
    > Set MoveToFldr = Nothing
    > Set olNs = Nothing
    > Set olApp = Nothing
    >
    > End Sub
    >
    >
    > Can anyone tell me what I'm doing wrong?
    >
    > Any help would be greatfully appreciated.
    >
    > Thanks in advance
    >
    > Jamie




  3. #3
    Bob Phillips
    Guest

    Re: Saving attachments from Outlook

    Set a reference to the Microsoft Outlook type library in the VBE
    (Tools>References)

    --
    HTH

    Bob Phillips

    "Jamie" <[email protected]> wrote in message
    news:[email protected]...
    > Hi there,
    >
    > I am trying to write a macro that will search my outlook inbox for a
    > specific subject heading then save the attatchment to a specific folder.
    >
    > I have picked up this code with help from this site but my VBA skills are
    > extremely limited and I can't get it to work. When I run it It stops at

    the
    > first line and gives this error message:
    >
    > Compile error:
    >
    > User-defined type not defined
    >
    > Code:
    >
    > Sub SaveAttachments()
    >
    > Set myOLApp = CreateObject("Outlook.Application")
    >
    > Dim olApp As Outlook.Application
    > Dim olNs As NameSpace
    > Dim Fldr As MAPIFolder
    > Dim MoveToFldr As MAPIFolder
    > Dim olMi As MailItem
    > Dim olAtt As Attachment
    > Dim MyPath As String
    > Dim i As Long
    >
    > Set olApp = New Outlook.Application
    > Set olNs = olApp.GetNamespace("MAPI")
    > Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
    > Set MoveToFldr = Fldr.Folders("eisreq")
    > MyPath = "I:\EIS\Forms\"
    >
    > For i = Fldr.Items.Count To 1 Step -1
    > Set olMi = Fldr.Items(i)
    > If InStr(1, olMi.Subject, "EIS") > 0 Then
    > For Each olAtt In olMi.Attachments
    > If olAtt.Filename = "EIS Request.xls" Then
    > olAtt.SaveAsFile MyPath & olMi.SenderName & ".xls"
    > End If
    > Next olAtt
    > olMi.Save
    > olMi.Move MoveToFldr
    > End If
    > Next i
    >
    > Set olAtt = Nothing
    > Set olMi = Nothing
    > Set Fldr = Nothing
    > Set MoveToFldr = Nothing
    > Set olNs = Nothing
    > Set olApp = Nothing
    >
    > End Sub
    >
    >
    > Can anyone tell me what I'm doing wrong?
    >
    > Any help would be greatfully appreciated.
    >
    > Thanks in advance
    >
    > Jamie




  4. #4
    Bob Phillips
    Guest

    Re: Saving attachments from Outlook

    Oh, and remove the line


    Set myOLApp = CreateObject("Outlook.Application")

    --
    HTH

    Bob Phillips

    "Jamie" <[email protected]> wrote in message
    news:[email protected]...
    > Hi there,
    >
    > I am trying to write a macro that will search my outlook inbox for a
    > specific subject heading then save the attatchment to a specific folder.
    >
    > I have picked up this code with help from this site but my VBA skills are
    > extremely limited and I can't get it to work. When I run it It stops at

    the
    > first line and gives this error message:
    >
    > Compile error:
    >
    > User-defined type not defined
    >
    > Code:
    >
    > Sub SaveAttachments()
    >
    > Set myOLApp = CreateObject("Outlook.Application")
    >
    > Dim olApp As Outlook.Application
    > Dim olNs As NameSpace
    > Dim Fldr As MAPIFolder
    > Dim MoveToFldr As MAPIFolder
    > Dim olMi As MailItem
    > Dim olAtt As Attachment
    > Dim MyPath As String
    > Dim i As Long
    >
    > Set olApp = New Outlook.Application
    > Set olNs = olApp.GetNamespace("MAPI")
    > Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
    > Set MoveToFldr = Fldr.Folders("eisreq")
    > MyPath = "I:\EIS\Forms\"
    >
    > For i = Fldr.Items.Count To 1 Step -1
    > Set olMi = Fldr.Items(i)
    > If InStr(1, olMi.Subject, "EIS") > 0 Then
    > For Each olAtt In olMi.Attachments
    > If olAtt.Filename = "EIS Request.xls" Then
    > olAtt.SaveAsFile MyPath & olMi.SenderName & ".xls"
    > End If
    > Next olAtt
    > olMi.Save
    > olMi.Move MoveToFldr
    > End If
    > Next i
    >
    > Set olAtt = Nothing
    > Set olMi = Nothing
    > Set Fldr = Nothing
    > Set MoveToFldr = Nothing
    > Set olNs = Nothing
    > Set olApp = Nothing
    >
    > End Sub
    >
    >
    > Can anyone tell me what I'm doing wrong?
    >
    > Any help would be greatfully appreciated.
    >
    > Thanks in advance
    >
    > Jamie




  5. #5
    Jamie
    Guest

    Re: Saving attachments from Outlook

    Thanks a lot for that. I have one further question though.

    At the moment this code saves the attachment as the name of the person who
    sent it which is great except when someone sends two. If this happens the
    first spreadsheet from that person is overwritten. Is there any way around
    this?

    "Ron de Bruin" wrote:

    > Hi Jamie
    >
    > You must set a reference (VBE - Tools -
    > References) to the Outlook Object Library.
    >
    >
    > --
    > Regards Ron de Bruin
    > http://www.rondebruin.nl
    >
    >
    >
    > "Jamie" <[email protected]> wrote in message news:[email protected]...
    > > Hi there,
    > >
    > > I am trying to write a macro that will search my outlook inbox for a
    > > specific subject heading then save the attatchment to a specific folder.
    > >
    > > I have picked up this code with help from this site but my VBA skills are
    > > extremely limited and I can't get it to work. When I run it It stops at the
    > > first line and gives this error message:
    > >
    > > Compile error:
    > >
    > > User-defined type not defined
    > >
    > > Code:
    > >
    > > Sub SaveAttachments()
    > >
    > > Set myOLApp = CreateObject("Outlook.Application")
    > >
    > > Dim olApp As Outlook.Application
    > > Dim olNs As NameSpace
    > > Dim Fldr As MAPIFolder
    > > Dim MoveToFldr As MAPIFolder
    > > Dim olMi As MailItem
    > > Dim olAtt As Attachment
    > > Dim MyPath As String
    > > Dim i As Long
    > >
    > > Set olApp = New Outlook.Application
    > > Set olNs = olApp.GetNamespace("MAPI")
    > > Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
    > > Set MoveToFldr = Fldr.Folders("eisreq")
    > > MyPath = "I:\EIS\Forms\"
    > >
    > > For i = Fldr.Items.Count To 1 Step -1
    > > Set olMi = Fldr.Items(i)
    > > If InStr(1, olMi.Subject, "EIS") > 0 Then
    > > For Each olAtt In olMi.Attachments
    > > If olAtt.Filename = "EIS Request.xls" Then
    > > olAtt.SaveAsFile MyPath & olMi.SenderName & ".xls"
    > > End If
    > > Next olAtt
    > > olMi.Save
    > > olMi.Move MoveToFldr
    > > End If
    > > Next i
    > >
    > > Set olAtt = Nothing
    > > Set olMi = Nothing
    > > Set Fldr = Nothing
    > > Set MoveToFldr = Nothing
    > > Set olNs = Nothing
    > > Set olApp = Nothing
    > >
    > > End Sub
    > >
    > >
    > > Can anyone tell me what I'm doing wrong?
    > >
    > > Any help would be greatfully appreciated.
    > >
    > > Thanks in advance
    > >
    > > Jamie

    >
    >
    >


  6. #6
    papifrank - ExcelForums.com
    Guest

    Re: Saving attachments from Outlook

    You can add the date and/or time after the person's name.

    olAtt.SaveAsFile MyPath & olMi.SenderName & now() & ".xls"


+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1