Bonjour à tous,
J'en vois déjà certain qui vont rougir de colère à la vue de mon post...
Après multiples recherches sur la méthode AdvancedSearch de OutLook, je m'en remet à des gens plus habitués que moi au VBA.
J'ai une boite "mirroir", i.e. une boite qui reçoit en copie tous les mails qui partent de la société. Je souhaiterai en fait faire un rapprochement entre une base de donnée et les mails reçus pour faire un contrôle des mails qui sont effectivement bien parti, étant donné que nous envoyons énormément de mail.
Mon problème se situe au niveau de l'utilisation de la méthode de recherche.
J'ai bien défini la méthode Application_AdvancedSearchComplete afin de capter la fin de la méthode AdvancedSearch. Mais cette dernière ne s'arrête jamais. Du moins, elle est "trop longue" à mon goût.
Voici un extrait de mon code de recherche
Ma boucle est à priori sans fin. Si je fais une recherche direct avec l'outil OutLook, cela ne prend que quelques secondes. Alors que j'ai perdu patience au bout de 3min par du VBA...
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 Dim ObjSearch As Outlook.Search Dim i As Integer Dim strScope As String Dim strFiltre As String Dim strDossier As String 'Initialisation du boolean blnStopSearch = False strDossier=Application.Session.GetDefaultFolder(olFolderInbox).Folders.Item(1).Folders.Item(6).Folders.Item(2).Folders.Item(2).FolderPath strScope = "SCOPE ('shallow traversal of " & AddQuotes(strDossier) & "')" strFiltre = "urn:schemas:httpmail:to like '%UnExtraitDeMonSujet%'" 'Instancie l'objet à la méthode AdvancedSearch Set ObjSearch = Application.AdvancedSearch(strScope, strFiltre) 'Boucle tant que AdvancedSearch n'a pas fini sa recherche, déclenche l'événement AdvancedSearchComplete While blnStopSearch = False DoEvents Wend
Petite précision sur le dossier de recherche : J'ai récupéré cette valeur en inspectant l'élément "Application.Session.GetDefaultFolder(olFolderInbox)" Via un espion afin d'éviter de le faire par du code. Pour info', c'est un sous dossier où sont classé les mails via des règles, et je ne dois rechercher que dans ce dossier.
Je continu de chercher à droite ou à gauche, mais les fins développeurs auront remarquer que j'ai "copier/coller" la source venant de http://dolphy35.developpez.com/article/outlook/vba/#LV (je ne colle donc pas la source de la méthode de SearchCompleted car c'est la même que celle trouvée sur le site)
Pour les septiques qui diront que mon "Scope" est inattendu (présence de SCOPE ('shallow traversal of ..), j'ai trouvé une source intéressante ici : http://www.outlookcode.com/threads.a...essageid=12478
Merci d'avance.
EDIT : J'avais aussi été intéressé par cette méthode qui a bien marché, mais mon souci premier est que je ne suis pas arrivé à faire une recherche de type "SubJect like" et je dois m'en contenir à "Sujet="
http://www.developpez.net/forums/d68...utlook-2003-a/
Partager