View Single Post
  #4  
Old November 19th 08, 04:32 PM posted to microsoft.public.outlook.program_vba
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Move item between folders

The declaration for colFolderItems needs to be at class level outside of the
startup procedure so it stays alive after that procedure ends. You'd also
need to have the items you're adding to the collection already instantiated
of course.

To instantiate a Class1 object do this:

Dim oClass As New Class1

You then need to set oClass (Class1) Folder and Items properties so those
should be Public:

' in Class1
Public WithEvents colItems As Outlook.Items
Public oFolder As Outlook.MAPIFolder

Now assuming you have the folders you want as oFolder1 and oFolder2 you'd do
this:

Set oClass.oFolder = oFolder1
Set oClass.colItems = oFolder1.Items

and repeat with a new instance of Class1 for each folder such as oFolder2.

Of course you'd need code to declare and instantiate all the folders you
want to monitor.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"Nigel RS" wrote in message
...
Hi Ken
Thank you very much, but I am not sure I follow everything you said....

In Class1 module I have added the following.....

Private WithEvents colItems As Outlook.Items
Private oFolder As Outlook.MAPIFolder

Private Sub colItems_ItemAdd(Item As Object)
' test to show an action occurs
MsgBox "Mail: " & Item
End Sub

In ThisOutlookSession I have added......

Private Sub Application_Startup()
Private colFolderItems As New Collection
colFolderItems.Add Item:="RSM Data", Key:=CStr(1)
colFolderItems.Add Item:="RSS Data", Key:=CStr(2)
End Sub

What I am not sure about is how to intialize the class module??

I am sure it must be simple!

Cheers


Ads