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 :

recherche dans les sous dossiers


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut recherche dans les sous dossiers
    bonjour,

    J'ai récupéré ce code sur le forum, que j'ai adapté a mes besoins :
    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
    39
    40
     
    Sub GetSenderFromCurrentFolder()
     
    Dim MonOutlook As Outlook.Application
    Dim LesMails As Object
     
    'Déclaration des variables
        Dim appExcel As Excel.Application 'Application Excel
        Dim wbExcel As Excel.Workbook     'Classeur Excel
        Dim wsExcel As Excel.Worksheet    'Feuille Excel
     
        'Ouverture de l'application
        Set appExcel = CreateObject("Excel.Application")
        appExcel.Visible = True
        appExcel.Workbooks.Add
        Set wbExcel = appExcel.ActiveWorkbook
        Set wsExcel = wbExcel.ActiveSheet
     
        wsExcel.Range("a1").Value = "Mail"
     
        Dim ligne
        ligne = 2
     
    Set MonOutlook = Outlook.Application
    Set LesMails = MonOutlook.ActiveExplorer.Selection
    If LesMails.Count <= 1 Then
    toutmails = MsgBox("Selectionner tous les mails du dossier ?", vbYesNo, "pour recherche des adresses Email")
        If toutmails = vbYes Then
        Set LesMails = MonOutlook.ActiveExplorer.CurrentFolder.Items
        End If
    End If
    For Each lemail In LesMails
     
         wsExcel.Cells(ligne, 1).Value = lemail.SenderEmailAddress
        ligne = ligne + 1
     
    Next lemail
     
    MsgBox "Opération terminée"
    End Sub
    Je n'arrive pas a rajouter le fait que la recherche se fasse dans le dossier courant et dans ses sous dossiers.

    Si quelqun à une piste a me proposer, je prend

    Merci d'avance.

  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 : 53
    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,

    Voici un exemple de syntaxe

    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
    Sub ProcessFolder(StartFolder As Outlook.MAPIFolder)
        Dim objFolder As Outlook.MAPIFolder
        Dim objItem as Object
        On Error Resume Next
     
        ' Ici on fait quelque chose dans chaque dossier
       ' on écrit une ligne dans la fenêtre exécution
        Debug.Print StartFolder.FolderPath, StartFolder.Items.Count
        Debug.Print
     
        ' Parcourt tous les sous-dossiers de ce dossier 
        For Each objFolder In StartFolder.Folders
            Call ProcessFolder(objFolder)
        Next
     
        ' Parcourt tous les éléments de ce dossier. 
        For Each objItem In StartFolder.Items
            Call ProcessItem(objItem)
        Next
     
        Set objFolder = Nothing
    End Sub
    Exemple d'utilisation à la racine de la BOÎTE .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub ListSubFolders()
     
        Dim OL As Outlook.Application
        Dim OLNS As Outlook.NameSpace
        Dim OLItem As Object
        Dim OLFolder As Outlook.Folders
     
        Set OL = New Outlook.Application
        Set OLNS = OL.GetNamespace("MAPI")
     
        Set OLFolder = OLNS.GetDefaultFolder(olFolderInbox).Folders
    'Ici on exécute la macro en question
        ProcessFolder OLNS.GetDefaultFolder(olFolderInbox).Parent
    End Sub

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    merci pour l'exemple, je voie l'idée.
    mais a quel moment tu défini ton ProcessItem ?

  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 : 53
    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
    il faut bien sur la créer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sub ProcessItem (item as object)
    if Item.Class = olMail then
    msgbox item.SenderEmailAddress
    end if
    end sub
    Après il y a une méthode alternative c'est de créer dans les "dossiers de recherche" une recherche qui correspond à tous tes mails et de lancer ta procédure dans ce dossier uniquement. ok ?

Discussions similaires

  1. Supprimer dans les sous dossiers
    Par labusette dans le forum VBScript
    Réponses: 10
    Dernier message: 12/09/2011, 10h01
  2. Création de dossiers dans les sous-dossiers
    Par djaih dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 26/05/2011, 13h29
  3. Réponses: 0
    Dernier message: 17/05/2010, 10h43
  4. [XL-2000] recherche dans tous les sous-dossiers
    Par zandru dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/01/2010, 10h32
  5. Liste de fichiers dans tous les sous dossiers
    Par TaleMaker dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/12/2008, 18h29

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