Bonjour,
Je crée actuellement une macro qui déplace automatiquement mes mails lorsque je donne une catégorie.
Ex: Je met la catégorie "pub" et le message se déplace dans le dossier "pub".
La macro fonctionne presque correctement ... Lorsque mon message est déplacé, j'ai le message d'erreur suivant : "Impossible d'effectuer l'opération, l'objet ayant été supprimé".
Seriez-vous où se situe mon erreur ?
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 Public WithEvents AM As MailItem 'Lancement lors de la modification des propriétés d'un mail. '"Name" est un string et correspond au nom de la propriété. Private Sub AM_PropertyChange(ByVal Name As String) 'Je définis les variables. Dim CategorieName As String Select Case Name Case "Categories" 'Si "Name" contient "Categories", je traite le mail. Sinon je laisse tomber. If AM.Categories <> "" Then 'Si je donne une catégorie au mail je continue le traitement. CategorieName = AM.Categories AM.Categories = CategorieName MoveItems (CategorieName) End If End Select End Sub 'Lancement lors de la sélection d'un objet. '"Item" est un objet et correspond au type d'objet sélectionné. Private Sub Application_ItemLoad(ByVal Item As Object) If Item.Class = olMail Then 'Si "Item" est un mail, je récupère le mail dans la variable AM. Sinon je laisse tomber. Set AM = Item Else Exit Sub End If End Sub Private Sub MoveItems(CategorieName) 'Je définis les variables. Dim myOlapp As New Outlook.Application Dim myNameSpace As Outlook.NameSpace Dim myFolder As Outlook.Folder Dim myDestFolder As Outlook.Folder On Error GoTo MsgErr Set myNameSpace = myOlapp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox) Set myDestFolder = myFolder.Folders(CategorieName) 'Je définis le répertoire de destination. AM.Move myDestFolder 'Je déplace le mail Set myOlapp = Nothing Set myNameSpace = Nothing Set myFolder = Nothing Set myDestFolder = Nothing MsgErr: If Err.Number = -2147221233 Then MsgBox "Le dossier de destination n'existe pas !", vbCritical, "Erreur !" Else MsgBox "An unexpected Error has occurred." _ & vbCrLf & "Error Number: " & Err.Number _ & vbCrLf & "Error Description: " & Err.Description _ , vbCritical, "Error!" End If Set myOlapp = Nothing Set myNameSpace = Nothing Set myFolder = Nothing Set myDestFolder = Nothing Exit Sub End Sub
Partager