vba to create a shared mailbox folder

Status
Not open for further replies.

Mark White

Member
Outlook version
Outlook 2013 64 bit
Email Account
Exchange Server
Hi
I'm using Outlook 2013 and need to move emails into an archive subdirectory which is fine as per code listed here, but if that subdirectory doesn't exist then my code falls over.
My account has all permissions necessary but in this snippet from code found on this site:
FoldersArray = Split(pstrFolderPath, "\")
Set oFolder = Application.Session.Folders.Item(FoldersArray(0))
If Not oFolder Is Nothing Then
For intI = 1 To UBound(FoldersArray, 1)
Dim SubFolders As Outlook.Folders
Set SubFolders = oFolder.Folders
Set oFolder = SubFolders.Item(FoldersArray(intI))
If oFolder Is Nothing Then
Application.Session.Folders.Add strNew, olFolder
End If
Next
End If
The line SubFolders.Item(FoldersArray(intI)) falls over if the folder doesn't exist and I can't see how to add something like Application.Session.Folders.Add "NewFolderName"

Any ideas gratefully accepted
Cheers
Mark
 
It could be related to the array - where are you getting the folder name from? It looks like the split function is splitting an existing folder path, not creating a new folder. (It looks like that code is from the getfolderpath function, which is used to get the folder path of secondary data files).

The arrary finds the folder in the path but if the folder you want to use doesn't exist, you need to pass a string variable to the code to create the folder.


This is how i create folders from a list of names (in an excel sheet) - newfoldername is a string variable that is the new folder name. (in the example at Macro to file Outlook email by sender's display name, i use the sender's name. )

On Error Resume Next
Dim objNewFolder As Outlook.Folder
Set objNewFolder = objParentFolder.Folders(newFolderName)

If objNewFolder Is Nothing Then
Set objNewFolder = objParentFolder.Folders.Add(newFolderName)
End If
 
Thanks for that, Diane,
however the sub directory to save the email to is contained within the email... I pick that up earlier and then use the GetFolderPath () function found here http://www.slipstick.com/developer/working-vba-nondefault-outlook-folders/ to then Move the email to the folder...

I've ascertained that it raises error -2147221233 and so wrote some code like this in the error handler:
If Err.Number = -2147221233 Then
Set oFolder = Application.Session.Folders.Item(FoldersArray(0))
For intI = 1 To UBound(FoldersArray, 1) - 1 '*** go back to the Directory above the error
Set SubFolders = oFolder.Folders
Set oFolder = SubFolders.Item(FoldersArray(intI))
If oFolder Is Nothing Then
Set GetFolderPath = Nothing
End If
Next
oFolder.Folders.Add strNew '*** this is found earlier by using InStrRev etc
End If
but it all seems a bit cluncky and not terribly generic ...
 
I'm not sure why it's triggering an error (posting your full code might help) - are you doing it this way:

use getfolderpath to set the parent folder first -
objParentFolder = getfolderpath ("parent folder\path")

You could work the getfolderpath function into the code so you only need one macro - but regardless of how you do it, get the parent folder first.

if you get the parent path from the message too, pass it to getfolderpath using a string variable:
objParentFolder = getfolderpath (strPathfromMessage)

since you are getting it from the mail, i would use
newFoldername = however you got it from the message

On Error Resume Next
Dim objNewFolder As Outlook.Folder
Set objNewFolder = objParentFolder.Folders(newFolderName)

If objNewFolder Is Nothing Then
Set objNewFolder = objParentFolder.Folders.Add(newFolderName)
End If
 
Status
Not open for further replies.
Similar threads
Thread starter Title Forum Replies Date
I shared mailbox - can i create a rule (vba) for every user? Outlook VBA and Custom Forms 1
B Modify VBA to create a RULE to block multiple messages Outlook VBA and Custom Forms 0
W Create a Quick Step or VBA to SAVE AS PDF in G:|Data|Client File Outlook VBA and Custom Forms 1
D Create advanced search (email) via VBA with LONG QUERY (>1024 char) Outlook VBA and Custom Forms 2
K VBA BeforeItemMove event create rule to always move to its folder. Outlook VBA and Custom Forms 4
D create an html table in outlook custom form 2010 using vba in MsAccess Outlook VBA and Custom Forms 7
Diane Poremsky Create a Series of Tasks using VBA Using Outlook 0
A VBA to create meeting from template from a time slot selected in someone's calendar Outlook VBA and Custom Forms 5
Diane Poremsky Use VBA to create an Outlook Search Folder for Sender Using Outlook 0
B VBA Code to create appointment from email Outlook VBA and Custom Forms 1
Diane Poremsky Create a list of color categories and merge or restore the list using VBA Using Outlook 0
P VBA create mail with attachment and voting buttons Using Outlook 6
J Create new outlook task into task subfolder using vba Using Outlook 6
H using VBA to edit subject line Outlook VBA and Custom Forms 0
G Get current open draft message body from VBA Outlook VBA and Custom Forms 1
Geldner Problem submitting SPAM using Outlook VBA Form Outlook VBA and Custom Forms 2
P VBA to add email address to Outlook 365 rule Outlook VBA and Custom Forms 0
M Outlook 2016 outlook vba to look into shared mailbox Outlook VBA and Custom Forms 0
V VBA Categories unrelated to visible calendar and Visual appointment Categories Outlook VBA and Custom Forms 2
D Outlook VBA forward the selected email to the original sender’s email ID (including the email used in TO, CC Field) from the email chain Outlook VBA and Custom Forms 3
R Outlook 365 VBA AUTO SEND WITH DELAY FOR EACH EMAIL Outlook VBA and Custom Forms 0
R Outlook 2019 VBA to List Meetings in Rooms Outlook VBA and Custom Forms 0
geoffnoakes Counting and/or listing fired reminders via VBA Using Outlook 1
O VBA - Regex - remove double line spacing Outlook VBA and Custom Forms 1
D.Moore Strange VBA error Outlook VBA and Custom Forms 4
D Outlook 2021 Using vba code to delete all my spamfolders not only the default one. Outlook VBA and Custom Forms 0
K vba code to auto download email into a specific folder in local hard disk as and when any new email arrives in Inbox/subfolder Outlook VBA and Custom Forms 0
D VBA - unable to set rule condition 'on this computer only' Outlook VBA and Custom Forms 5
L Fetch, edit and forward an email with VBA outlook Outlook VBA and Custom Forms 2
BartH VBA no longer working in Outlook Outlook VBA and Custom Forms 1
W Can vba(for outlook) do these 2 things or not? Outlook VBA and Custom Forms 2
MattC Changing the font of an email with VBA Outlook VBA and Custom Forms 1
P MailItem.To Property with VBA not work Outlook VBA and Custom Forms 2
P Tweak vba so it can target another mailbox Outlook VBA and Custom Forms 1
A Outlook 2010 VBA fails to launch Outlook VBA and Custom Forms 2
richardwing Outlook 365 VBA to access "Other Actions" menu for incoming emails in outlook Outlook VBA and Custom Forms 0
J Outlook Rules VBA Run a Script - Multiple Rules Outlook VBA and Custom Forms 0
C Outlook (desktop app for Microsoft365) restarts every time I save my VBA? Using Outlook 1
D VBA Macro to Print and Save email to network location Outlook VBA and Custom Forms 1
TedSch Small vba to kill political email Outlook VBA and Custom Forms 3
E Outlook 365 Outlook/VBA Outlook VBA and Custom Forms 11
N VBA Macro To Save Emails Outlook VBA and Custom Forms 1
Z VBA Forward vs manual forward Outlook VBA and Custom Forms 2
J VBA Cannot programmatically input or change Value for User Defined field Using Outlook 1
J VBA for outlook to compare and sync between calendar Outlook VBA and Custom Forms 1
A Any way to force sort by/group by on search results with VBA? Outlook VBA and Custom Forms 1
E Default shape via VBA Outlook VBA and Custom Forms 4
A Change settings Send/receive VBA Outlook VBA and Custom Forms 0
Z Import Tasks from Access Using VBA including User Defined Fields Outlook VBA and Custom Forms 0
E Outlook VBA change GetDefaultFolder dynamically Outlook VBA and Custom Forms 6

Similar threads

Back
Top