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 :

Déplacer un email vers un sous/sous dossier [OL-2007]


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Déplacer un email vers un sous/sous dossier
    Bonjour le forum,
    j'ai bien trouvé les lignes de code qui permettent de déplacer un email sélectionné de la boite de réception vers un dossier "Test" de cette même boite de réception, mais je sèche pour déplacer mon email vers un sous dossier du genre :
    Boite de réception
    -France
    -Allemagne
    -Italie
    ----Represantant
    ----Client
    --------PJ12-124
    --------PJ12-125
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Set MonApply = Outlook.Application
    Set MonNSpace = MonApply.GetNamespace("MAPI")   
    Set FldDossier = MonNSpace.GetDefaultFolder(olFolderInbox) 
    Set MyItemObj = Fldossier.Items(myItem.Subject)
    Set Mainbox = MonNSpace.GetDefaultFolder(olFolderInbox)
    Set MonDestFolder = Mainbox.Folders("PJ12-125")
    MyItemObj.Move MonDestFolder

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    J'ai un début de piste avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set MonDestFolder = Mainbox.folders("Italie").folders("Client").folders("PJ12-125")
    Qui déplace mon email ayant pour objet "PJ12-125" vers le bon dossier.

    Maintenant c'est d'automatiser la manipulation qui me pose problème.
    En effet, à la réception de mon email, j'ai une routine qui s’exécute si dans l'objet j'ai le mot clef "PJ" (PJxxxxx), celui-ci contrôle qu'un dossier portant le même nom existe si ce n'est pas le cas, on informe l'utilisateur, sinon, on classe l'email dans ce dossier.
    Par la procédure précédente, j'ai le nom complet qui remonte dans une variable CheminComplet = \\dossier untel\Italie\Client\Pj12-125.
    Il me reste à trouver comment automatiser en fonction des différents sous-répertoires.
    Quelqu'un aurai t'il une piste?

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Finalement j'ai trouvé, pour ceux que ça intéresse je post le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim DossierCible As Outlook.folder
     
    'Adresse du mail à déplacer
    Set MyItemObj = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items(myItem.Subject)                     
     
    'Avec GetFolder j'envoi dans une variable l'adresse du dossier ou le mail doit être déposé
    Set DossierCible = GetFolder(SsDossier)
     
    'Je déplace mon email vers le dossier               
    MyItemObj.Move DossierCible
    Le chemin du dossier cible "SsDossier" doit être testé avant afin d'éviter un plantage.
    Ci-joint le code complet pour tester la présence du dossier et remonter le chemin complet.

    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    Private Sub Application_ItemLoad(ByVal Item As Object) '//Lorsqu'on clic sur un objet
    '//Declaration des variables//
    Dim TrvPj As String
    Dim TrvTiret As String
    Dim MyItemObj
    Dim MonDosDest
     
    If Not Item.Class = olMail Then Exit Sub 'Si l'objet n'est pas un Email, sortir de la boucle
     
           Set myItem = ActiveExplorer.Selection.Item(1)    'La variable MyItem prend la valeur de l'objet du mail
     
            If myItem.Subject Like "*PJ*" Then                  'Si l'objet contient les lettre PJ lancer l'analyse
     
                '****Extraire le code projet de l'objet****
                TrvPj = InStr(myItem, "PJ")                  'Renvoi la position de PJ dans l'objet
                TrvTiret = InStr(TrvPj, myItem, "-")     'Renvoi la position du tiret dans l'objet
                If TrvTiret = 0 Then MsgBox "The dash is missing": Exit Sub 'Si le Tiret est manquant : Sortir de la boucle et informer l'utilisateur
                PjName = Mid(myItem, TrvPj, 8)         'Renvoi le nom du projet pour le traitement dans le module de recherche
                '**********************************
                SsRacine = "": SsDossier = "": Compteur = 0           'Initialise les variables
     
                Call EnumerateFoldersInStores           'Appel de la sous procédure
     
                If boolverif = False And Compteur = 1 Then
     
                    Set MyItemObj = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items(myItem.Subject)                     'mail a deplacer
     
                        Dim DossierCible As Outlook.folder
                        Set DossierCible = GetFolder(SsDossier)
     
                    MyItemObj.Move DossierCible
     
                End If
     
            End If
     
    End Sub
     
     
    Sub EnumerateFoldersInStores()
        Dim olApp As New Outlook.Application
        Dim colStores As Outlook.Stores
        Dim oStore As Outlook.Store
        Dim oRoot As Outlook.folder
     
        boolverif = True
     
        On Error Resume Next
        Set colStores = olApp.Session.Stores
     
        For Each oStore In colStores
     
            Set oRoot = oStore.GetRootFolder
            Debug.Print (oRoot.FolderPath) 'Affiche la racine du répertoire
            Racine = oRoot                           'Mémorise la racine du répertoire
            EnumerateFolders oRoot           'Appel de la sous procédure
     
         Next
     
       If Compteur > 1 Then
            MsgBox " You have many folder with same name"
       End If
     
       If boolverif = True Then
            MsgBox "You must created folder before archive it"
       End If
     
    End Sub
     
     
    Private Sub EnumerateFolders(ByVal oFolder As Outlook.folder)
        Dim folders As Outlook.folders
        Dim folder As Outlook.folder
        Dim foldercount As Integer
     
        On Error Resume Next
        Set folders = oFolder.folders
        foldercount = folders.Count
     
        If foldercount Then
     
            For Each folder In folders
                Debug.Print (folder.FolderPath) 'Affiche le chemin du contenu du répertoire (sous-dossier)
                EnumerateFolders folder
                If folder Like PjName Then
                   boolverif = False
                   Compteur = Compteur + 1
                   SsDossier = folder.FolderPath
                   SsRacine = Racine
                End If
            Next
     
       End If

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour steph,
    Je suis intéresser par ce sujet puisque j'ai le même problème que toi,j'ai essayer mais j'arrive pas a enregistrer mon mail sur un dossier spécifique qui porte le même nom de l'objet d'un mail reçu !!
    Mercii

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    bonjour,
    et avec le code que j'ai posté ça ne marche pas?

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    J'ai tester plusieurs fois mais a chaque fois j'ai le MsgBox "You must created folder before archive it" ,mm si j'ai déjà créer le dossier !!

  7. #7
    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
    Ton pb n est sans doute pas identique

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

Discussions similaires

  1. [OL-2010] Déplacer un email vers un sous dossier
    Par yaazedine dans le forum Outlook
    Réponses: 0
    Dernier message: 15/05/2014, 15h27
  2. Réponses: 0
    Dernier message: 18/04/2012, 15h07
  3. [OL-2003] Déplacer des emails vers un dossier spécifique
    Par p62dok dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 05/10/2010, 16h22
  4. Déplacer contenu sous sous dossier
    Par lagalere80 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 23/08/2008, 13h39
  5. de SQL vers T-SQL sous MS SREVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/09/2003, 15h37

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