J'essaie de créer une macro qui déplacera des éléments dans ma boîte de réception Outlook vers un sous-dossier d'un autre dossier au même niveau que la boîte de réception (le dossier parent n'est pas un sous-dossier de la boîte de réception). Voici le code que je utilise:Comment déplacer un e-mail dans Outlook vers un sous-dossier?
Sub EventRequests()
On Error Resume Next
Dim ns As Outlook.NameSpace
Dim moveToFolder As Outlook.MAPIFolder
Dim objItem As Outlook.MailItem
Set ns = Application.GetNamespace("MAPI")
'Define path to the target folder
Set moveToFolder = ns.Folders("Events").Folders("Event Requests")
If Application.ActiveExplorer.Selection.Count = 0 Then
MsgBox ("Select an E-mail first")
Exit Sub
End If
If moveToFolder Is Nothing Then
MsgBox "Target folder not found!", vbOKOnly + vbExclamation, "Move Macro Error"
End If
For Each objItem In Application.ActiveExplorer.Selection
If moveToFolder.DefaultItemType = olMailItem Then
If objItem.Class = olMail Then
objItem.Move moveToFolder
End If
End If
Next
Set objItem = Nothing
Set moveToFolder = Nothing
Set ns = Nothing
End Sub
Quand je lance le code que je reçois une erreur qui dit « dossier cible not found! » J'ai essayé Set moveToFolder = ns.GetDefaultFolder(olFolderInbox).Folders("Events").Folders("Event Requests")
et Set MoveToFolder = ns.Folders("Mailbox - my name").Folders(targetFolder)
mais aucun de ceux qui ont travaillé. J'ai un autre up jeu macro qui déplace les messages dans ma boîte de réception dans un dossier qui est un sous-dossier de ma boîte de réception et il fonctionne très bien:
Set moveToFolder = ns.GetDefaultFolder(olFolderInbox).Folders("Completed")
Comment puis-je fixer le chemin cible de sorte qu'il pointe vers le sous-dossier correct ?
On Error Resume Ensuite, au début est la pire erreur dans toute la programmation. http://www.cpearson.com/Excel/ErrorHandling.htm Déplacez-le juste avant que le paramètre moveToFolder ne soit ajouté. On Error GoTo 0. En supposant que le dossier "Events" se trouve directement sous la boîte aux lettres. Parcourez l'arborescence de dossiers depuis la boîte de réception par défaut vers Parent, puis vers le dossier Events. 'Set moveToFolder = ns.GetDefaultFolder (olFolderInbox) .Parent.Folders (" Événements "). Dossiers (" Event Requests ")' ou allez directement là avec 'Set MoveToFolder = ns.Folders (" Le nom de la boîte aux lettres n'est pas littéralement Mailbox - mon name "). Dossiers (" Events "). Dossiers (" Event Requests ")' – niton
Je devrais avoir préfacé mon commentaire avec "Je n'ai aucune idée de ce que je fais, je suis complètement nouveau à cela et je suis à tâtons dans le Je vais donc prendre avec plaisir toute aide et instruction que quelqu'un est prêt à donner. " Je vais lire sur le traitement des erreurs, merci pour le conseil! – sparkforce
Je travaille également à trouver les suggestions de code que vous m'avez données. Lorsque j'entre le premier, j'obtiens une erreur qui dit que j'ai besoin de déboguer "Si moveToFolder.DefaultItemType = olMailItem Then" – sparkforce