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 :

Automatiser la recherche avancée


Sujet :

VBA Outlook

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Points : 28
    Points
    28
    Par défaut Automatiser la recherche avancée
    Bonjour,
    Je cherche à automatiser l'action qui consiste à afficher tous les messages d'un même expéditeur à partir du message sélectionné.
    Comme par exemple avec l'action clic droit menu contextuel "Rechercher tout/Message de l'expéditeur...".
    Ce qui revient à faire une "Recherche avancée..." avec l'adresse de l'expéditeur.
    Si récupérer l'adresse de l'expéditeur est simple par contre je ne sais pas comment lancer la recherche avancée pour en afficher le résultat dans la fenêtre Outlook "Recherche avancé".
    D'avance merci

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    tu peux essayer ce code adapté de là : http://www.slipstick.com/developer/i...ected-contact/

    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
    Sub SearchByAddress()
     
    Dim myOlApp As New Outlook.Application
    Dim ns As Outlook.NameSpace
    Dim strFilter As String
    Dim oContact  As Outlook.ContactItem
     
    Set ns = myOlApp.GetNamespace("MAPI")
     
    ' use oContact.FullName to search on the name
    'strFilter = oContact.Email1Address
    strFilter = InputBox("email", , "expediteur@gmail.com")
    Set myOlApp.ActiveExplorer.CurrentFolder = ns.GetDefaultFolder(olFolderInbox)
     
    'txtSearch = "from:" & strFilter
    txtSearch = "àpartirdedepuis:(" & strFilter & ")"
    myOlApp.ActiveExplorer.Search txtSearch, olSearchScopeAllFolders
     
    Set myOlApp = Nothing
     
    End Sub

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    Super c'est exactement ce que je voulais faire.
    MERCI car les exemples sur le sujet ne sont pas facilement testables pas plus que l'aide en ligne.

    Le paramètre "olSearchScopeAllFolders" me donne des résultats incohérents dont je ne trouve pas la cause.
    Par contre après avoir lancer la macro, le lien "Relancer la recherche dans tous les éléments Courrier" à la fin de l'affichage fonctionne parfaitement !?!?
    Si tu as une piste je suis preneur :-)

    Voici mon code :
    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
    Sub SearchByAddress()
    '---------------------------------------------------------------------------------------------------------------------
    ' Auteur : Oliv- adapté du code suivant http://www.slipstick.com/developer/instant-search-messages-selected-contact/
    ' Idée   : Trarc
    ' Date   : 23/06/2016
    ' OS_App : Win 8.1_OL-2007
    ' But    : Automatiser la commande "Rechercher tout/Message de l'expéd" pour trier rapidement les messages d'un dossier.
    '---------------------------------------------------------------------------------------------------------------------
     
        Dim myOlApp As New Outlook.Application
        Dim ns As Outlook.NameSpace
        Dim myOlExp As Outlook.Explorer
        Dim myOlSel As Outlook.Selection
     
        Dim txtSearch As String
     
        Set ns = myOlApp.GetNamespace("MAPI")
        Set myOlExp = myOlApp.ActiveExplorer
        Set myOlSel = myOlExp.Selection
     
        txtSearch = myOlSel.Item(1).SenderName
     
        myOlExp.Search txtSearch, olSearchScopeCurrentFolder
     
        Set myOlApp = Nothing
        Set myOlExp = Nothing
        Set myOlSel = Nothing
     
    End Sub

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut,
    qu'entends tu par "incohérents" ?

    ton code ne donnera les résultats que dans le dossier en cours

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Les tests fait avec le code proposé donne le résultat suivant :
    1) lancement de la macro à partir du message sélectionné => OK => affichage des résultats issus des différents dossiers et fichiers PST ouverts.
    2) tout affiché => Ok
    3) sélection d'un autre message et lancement de la macro => KO => résultat vide même pas le message sélectionné !?!?
    Quelque soit le message sélectionné (après avoir tout affiché) le résultat est vide.
    4) Cependant si je re-sélectionne le message de la première recherche 1) Outlook affiche des résultats issus des différents dossiers et fichiers PST ouverts.

    Par contre en remplaçant "olSearchScopeAllFolders" par "olSearchScopeCurrentFolder" plus de problème.

    Voila

Discussions similaires

  1. [Recherche avancée] que les resolus
    Par ould dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 10
    Dernier message: 13/09/2005, 21h43
  2. [Composite] Gestion d'une recherche avancée
    Par Loctar dans le forum Design Patterns
    Réponses: 12
    Dernier message: 23/06/2005, 19h32

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