IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

AdvancedSearch ne s'arrête jamais [OL-2007]


Sujet :

VBA Outlook

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 467
    Points : 647
    Points
    647
    Par défaut AdvancedSearch ne s'arrête jamais
    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

    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
    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...

    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/

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 467
    Points : 647
    Points
    647
    Par défaut
    J'ai finalement opter pour la dernière solution...

    Je récupère les mails du dossiers, je fais un filtre de ce type sur mon dossier avec la méthode "Restrict" : strFiltre = "[ReceivedTime] >= 'Date' AND [ReceivedTime] < 'Date+1Jour'"

    Ensuite une boucle While avec une recherche de string (InStr) sur mon champ Subject... J'arrête le traitement quand j'ai trouvé.

    Pour ceux que ça aiderait...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Application ASP.Net qui ne s'arrête jamais
    Par Médinoc dans le forum ASP.NET
    Réponses: 31
    Dernier message: 25/03/2009, 10h07
  2. [SSIS][SSMS][2k5] Le job ne s'arrête jamais
    Par clementratel dans le forum SSIS
    Réponses: 0
    Dernier message: 02/12/2008, 16h11
  3. le package ne s'arrête jamais ?
    Par Mathusalem dans le forum SSIS
    Réponses: 2
    Dernier message: 22/08/2008, 11h10
  4. [DOM] AJAX: le chargement de la page ne s'arrête jamais
    Par Amallric dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 20/07/2008, 11h05
  5. ventilos ne s'arrête jamais de tourner
    Par sweety107 dans le forum Composants
    Réponses: 9
    Dernier message: 02/09/2005, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo