Bonjour,

Encore une fois un code qui m'est bien utile. Je reçois quantité de mails chaque jours, dont beaucoup de spams ou autres mails sans aucun intérêt. Je pourrais créer une règle via outlook pour les mettre directement à la poubelle, mais je préfère avoir un garde fou. D'où le dossier "merde" que je dois vider fréquemment. De la même manière lorsque nous travaillons sous exchange nous sommes parfois limités en terme d'espace de stockage (ce sera l'objet du prochain article), on peut donc adapter cette macro aux éléments envoyés.

Première étape, on déplace les éléments indésirables dans la corbeille :

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
    ' Déplacer DLamerde vers courbeille
 
Dim Ol_App As New Outlook.Application
Dim Ol_MAPI As Outlook.namespace
Dim Ol_FolderFrom, Ol_FolderFrom2 As Outlook.MAPIFolder
Dim Ol_FolderTo As Outlook.MAPIFolder
Dim Ol_Items As Outlook.MailItem
Dim NoItem As Integer
 
Set Ol_MAPI = Ol_App.GetNamespace("MAPI")
Set Ol_FolderFrom = Ol_MAPI.GetDefaultFolder(olFolderInbox).Folders("DLamerde")
Set Ol_FolderTo = Ol_MAPI.GetDefaultFolder(olFolderDeletedItems)
 
For NoItem = Ol_FolderFrom.Items.Count To 1 Step -1
     Set Ol_Items = Ol_FolderFrom.Items(NoItem)
     Ol_Items.Move Ol_FolderTo
Next NoItem
 
Set Ol_Items = Nothing
Set Ol_FolderTo = Nothing
Set Ol_FolderFrom = Nothing
Set Ol_MAPI = Nothing
Set Ol_App = Nothing
Seconde étape, on tire la chasse d'eau :

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
    ' Vider le dossier éléements supprimés
 
If MsgBox("Etes-vous certain de vouloir tout shooter ?", vbYesNo, "Demande de confirmation") = vbYes Then
 
Dim oDeletedItems As Outlook.Folder
Dim oFolders As Outlook.Folders
Dim oItems As Outlook.Items
Dim i As Long
 
Set oDeletedItems = Application.Session.GetDefaultFolder(olFolderDeletedItems)
Set oItems = oDeletedItems.Items
For i = oItems.Count To 1 Step -1
oItems.Item(i).Delete
Next
Set oFolders = oDeletedItems.Folders
For i = oFolders.Count To 1 Step -1
oFolders.Item(i).Delete
Next
End If

Enjoy,

Pet's