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 :

Rechercher un dossier dans l'arborescence d'outlook à partir des 5 premiers chiffres [OL-2016]


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'études
    Inscrit en
    Octobre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'études

    Informations forums :
    Inscription : Octobre 2016
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Rechercher un dossier dans l'arborescence d'outlook à partir des 5 premiers chiffres
    Bonjour,

    Je suis à la recherche d'une méthode (en VBA) pour effectuer la recherche d'un dossier dans l'arborescence d'outlook à partir des 5 premiers chiffres. Une fois le dossier trouvé, je souhaite récupérer son nom et chemin complet pour le réutiliser par la suite et exporter ce dossier en pst sur le pc.

    Je suis à la recherche de pistes de réflexion car je ne vois pas du tout comment mis prendre.

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

    Pour le partie recherche , je suppose que c'est récursif ?


    cette fonction récursive te renvoi un objet outlook.folder que tu pourras réutiliser

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Option Explicit
     
     
    Sub Lance_Traitement()
    '---------------------------------------------------------------------------------------
    ' Procedure : Lance_Traitement
    ' Author    : Oliv
    ' Date      : 12/02/2016
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
        Dim OL As Outlook.Application
        Dim olNS As Outlook.Namespace
        Dim olFolder As Outlook.Folder
    Dim FolderTrouve As Outlook.Folder
     
        If UCase(Application) = "OUTLOOK" Then
            Set OL = Application
        Else
            Set OL = CreateObject("outlook.application")
        End If
        Set olNS = OL.GetNamespace("MAPI")
        Dim Nom
        Nom = InputBox("Quel dossier ?", "recherche d'un dossier")
        'soit on connait le dossier
        'Set olFolder = olNS.GetDefaultFolder(olFolderInbox).folders
     
        'soit on le choisi
        Set olFolder = olNS.PickFolder
     
        Set FolderTrouve = fgetFolderByName(Nom, olFolder, True)
        MsgBox FolderTrouve.Name & vbCr & FolderTrouve.FolderPath
    End Sub
     
    Function fgetFolderByName(Nom, StartFolder As Outlook.MAPIFolder, SubFolder As Boolean) As Outlook.Folder
    '---------------------------------------------------------------------------------------
    ' Procedure : ProcessFolder
    ' Author    : Oliv'
    ' Date      : 12/02/2016
    ' Purpose   : Traitement récursif sur les dossiers OUTLOOK
    '---------------------------------------------------------------------------------------
    '
        Dim objFolder As Outlook.MAPIFolder
        Dim objitem As Object
     
        'Dim objItem As Object
        On Error Resume Next
     
        ' do something specific with this folder
        Debug.Print StartFolder.FolderPath, StartFolder.Items.Count
        Debug.Print
        If Not fgetFolderByName Is Nothing Then Exit Function
     
        If StartFolder.DefaultItemType = olMailItem Then
            '  ICI LE TRAITEMENT POUR CHAQUE DOSSIER
            If StartFolder.Name Like Nom & "*" Then
     
                Set fgetFolderByName = StartFolder
                Exit Function
            End If
     
        End If
     
        'on traite tous les sous dossiers
        If SubFolder Then
            For Each objFolder In StartFolder.Folders
                Set fgetFolderByName = fgetFolderByName(Nom, objFolder, SubFolder)
                If Not fgetFolderByName Is Nothing Then Exit For
            Next
        End If
     
        Set objFolder = Nothing
    End Function
    pour la suite tu veux exporter quoi les éléments de ce dossier ? y a t'il des sous dossiers ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'études
    Inscrit en
    Octobre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'études

    Informations forums :
    Inscription : Octobre 2016
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Merci pour le code qui fonctionne très bien. Maintenant, que j'ai le chemin et le nom de ce dossier. Je souhaite l'enregistrer lui et ses sous-dossiers en PST par exemple sur D:

    En tout un grand merci pour ce code que je viens de réadapter à mon besoin.

    Bon WE

  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
    Pour la suite

    s'il faut créer un PST : http://www.outlookcode.com/codedetail.aspx?id=642
    http://www.outlookcode.com/codedetail.aspx?id=1471


    pour l'export

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Set objNS = application.GetNamespace("MAPI")
     Set myNewFolder = objNS.PickFolder
    FolderTrouve.CopyTo myNewFolder

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chargé d'études
    Inscrit en
    Octobre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'études

    Informations forums :
    Inscription : Octobre 2016
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Merci pour le lien.

    Je vais m'en sortir avec cela.

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

Discussions similaires

  1. [OL-2016] Création et vérification des dossiers dans l'arborescence de outlook
    Par Grim971 dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 25/10/2016, 09h41
  2. rechercher du texte dans une arborescence de fichier
    Par tibotibo69 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 24/08/2009, 11h47
  3. Recherche de dossier dans dossier
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/06/2007, 13h23
  4. Réponses: 2
    Dernier message: 20/02/2006, 14h18
  5. Repérer un dossier dans une arborescence
    Par Feustine dans le forum Langage
    Réponses: 2
    Dernier message: 11/08/2005, 13h54

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