View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Steph[_3_] Steph[_3_] is offline
external usenet poster
 
Posts: 312
Default Dick K - Move e-mail to different folder

Hi Dick,

I tried the Counter code from your web site, and it works perfectly! Ignore
my last post. Thanks so much for your help!

"Steph" wrote in message
...
Hi Dick,

I added the Mi.Save, and same thing happend. Is it because I am using a
ForEach loop and not a counter? It seems very strange - all 4 e-mails in
the inbox have attachments....I'm totally confused as to why only 2 of

them
are moving??

"Dick Kusleika" wrote in message
...
Steph

You need to save the item before you move it

Mi.Save

When you save an attachment, the mailitem becomes dirty and it won't

move.

--
Dick Kusleika
MVP - Excel
Excel Blog - Daily Dose of Excel
www.dicks-blog.com

"Steph" wrote in message
...
Hi Dick (or anyone else who may be able to help!),

I have some code below that copies the excel attachment from every

e-mail
in
an Outlook folder and saves it to a specified network drive. That

part
has
been working great. But then I tried to move the e-mail to a

different
folder after it copies the attachment. In the Outlook folder, I

currently
have ben testing with 4 files.....the code moves 2 of them to the

different
outlook folder, while the other 2 stay. Any idea what I'm doing

wrong?
Thanks!

Sub Move()
'Saves attachments to a specified folder

Dim ol As Outlook.Application
Dim ns As Namespace
Dim Fldr As MAPIFolder
Dim MoveToFldr As MAPIFolder
Dim Mi As MailItem
Dim Att As Attachment

Set ol = New Outlook.Application
Set ns = ol.GetNamespace("MAPI")
Set Fldr = ns.Folders("Public Folders").Folders("All Public
Folders").Folders("Timesheet")
Set MoveToFldr = ns.Folders("Public Folders").Folders("All Public
Folders").Folders("Public Folders")

For Each Mi In Fldr.Items
If Mi.Attachments.Count 0 Then
For Each Att In Mi.Attachments
iFile = iFile + 1

'Att.SaveAsFile "H:\Timesheet Data\" & Att.Filename &
CStr(iFile)
'Att.SaveAsFile "H:\Timesheet Data\ts" & CStr(iFile) &

".xls"

Att.SaveAsFile "H:\Timesheet Data\" &

Format(Mi.ReceivedTime,
"yyyymmddhhmmss") & "-" & CStr(iFile) & ".xls"

Next Att
Mi.Move MoveToFldr

End If
Next Mi

Set Att = Nothing
Set Mi = Nothing
Set Fldr = Nothing
Set ns = Nothing
Set ol = Nothing
Set MoveToFldr = Nothing

End Sub