2010-12-04 2 views
0

J'essaie de créer un nouvel élément Outlook dans un magasin spécifique lorsque l'utilisateur l'enregistre. Normalement, s'il existe plusieurs comptes, lorsque vous créez un nouvel élément (par exemple, appuyez sur Ctrl + Maj + K pour une tâche), le nouvel élément est créé dans le dossier par défaut du compte actif.Outlook VBA: Déplacer un nouvel élément (non enregistré) dans le dossier

J'ai essayé d'intercepter l'inspecteur pour le nouvel élément et de le déplacer, mais cela n'a eu aucun effet. Voici l'essentiel du code (vérifier pour éviter les éléments non nouvelles est omise):

Dim WithEvents inspectors As Outlook.inspectors 

Private Sub Application_Startup() 
    Set inspectors = Application.inspectors 
End Sub 

Private Sub inspectors_NewInspector(ByVal Inspector As Inspector) 
    Dim item As Object 
    Set item = Inspector.CurrentItem 
    If item Is Nothing Then Exit Sub 
    If item.Class <> olTask Then Exit Sub 
    item.Move Application.GetNamespace("MAPI").GetDefaultFolder(olFolderTasks) 
End Sub 

Malheureusement, la méthode Move n'a pas d'effet. Des idées?

Répondre

1

Vous ne pouvez pas déplacer des éléments non sauvegardés. Comment créez-vous l'article?

Utilisez la méthode Items.Add pour ajouter un élément (c'est-à-dire le créer) dans un dossier spécifique. Si vous utilisez la méthode CreateItem, elle sera toujours créée dans le dossier par défaut pour ce type d'élément. Au lieu d'essayer d'utiliser la fonctionnalité existante pour essayer de créer la tâche (ce dont je ne suis pas sûr est possible ou facile), je pense que vous feriez mieux de créer une macro qui crée la tâche dans le dossier que vous voulez, puis ajoutez la macro à un bouton de barre d'outils. Ou vous pouvez essayer d'enregistrer l'élément en premier, puis le déplacer. Notez que votre code actuel déplace l'élément dans le dossier Tâches par défaut.

+0

Mon but est de me connecter aux méthodes standard de création de tâches dans Outlook: Accueil> Nouveaux éléments> Tâche ou Ctrl + Maj + K. Folders.Add crée un nouveau dossier; Je souhaite créer un nouvel élément de tâche dans un dossier spécifique après que l'utilisateur a renseigné ses données et cliqué sur Enregistrer. –

+0

Je voulais dire Items.Add, va réviser la réponse. – JimmyPena

+0

Votre suggestion de créer une macro semble être la meilleure que l'on puisse faire. Je l'ai fait au départ, mais j'espérais aussi pouvoir utiliser le mécanisme de création de tâches par défaut. Malheureusement, cela ne semble pas possible. Je n'ai pas pu fermer l'élément de tâche initial ou en créer un nouveau à partir de la méthode NewInspector. –

Questions connexes