Bonjour,
j'ai écris une macro qui filtre les mails en fonction de leur date de réception.
je souhaite ensuite les déplacer dans un autre dossier.
actuellement, je les prend un par un pour les déplacer. Ceci génère un temps de traitement très long dès 100 mails ... le but est d'utiliser cette macro pour des volumes beaucoup plus conséquents (40 000 mails).
Est-il possible de transformer ma dernière boucle en une sélection de tous les mails renvoyés par la fonction Restrict, afin de faire un déplacement "groupé" de tous les mails ?
j'ai tenté de déplacer directement la collection, mais sans succès.
Merci par avance aux avis éclairés de la communauté.
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 Sub Deplacement() Dim OlApp As Outlook.Application Dim olNmSpace As Outlook.NameSpace Dim olFolderParent As Outlook.MAPIFolder Dim BoiteMail As String Dim Histomail As Outlook.MAPIFolder Dim DossierTri As Outlook.MAPIFolder Dim LesMails As Outlook.Items Dim LesMailsTries As Outlook.Items Dim Restriction As String Dim i As Integer BoiteMail = "LaBoiteMail" Set OlApp = CreateObject("Outlook.Application") Set olNmSpace = OlApp.GetNamespace("MAPI") Set olFolderParent = olNmSpace.Folders(BoiteMail) Set Histomail = olFolderParent.Folders("Boîte de réception") '("*HISTOMAIL") Set DossierTri = olFolderParent.Folders("TEMP") Restriction = "[Receivedtime] < '" & Date - 30 & "'" Set LesMails = Histomail.Items Set LesMailsTries = LesMails.Restrict(Restriction) 'MsgBox LesMailsTries.Count For i = LesMailsTries.Count To 1 Step -1 LesMailsTries(i).move DossierTri Next End Sub
Joe
Partager