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

Outlook Discussion :

Deplacer un mail dans un sous dossier d'apres son objet


Sujet :

Outlook

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Deplacer un mail dans un sous dossier d'apres son objet
    Bonjour,

    J'ai adapté un code (merci DOLPHY 35) pour enregistrer un mail dans un sous dossier en fonction de l'objet d'un mail.

    Private Sub Application_NewMail()
    'Private Sub Application_NewMail(ByVal EntryIDCollection As String)

    'Déclarations

    Dim Exp As Explorer
    Dim Sel As Selection
    Dim Itm As MailItem

    Dim dossier As MAPIFolder
    Dim myNewFolder As MAPIFolder

    Dim myNamespace As Outlook.NameSpace
    Dim myInbox As Outlook.MAPIFolder

    Dim ObjItem As Outlook.MailItem

    Dim MonApp As Outlook.Application
    Dim MonMail As Object
    Dim MonNameSpace As Outlook.NameSpace
    Dim MonDossier As Outlook.Folder

    'Instance des variables
    Set MonApp = Outlook.Application
    Set MonNameSpace = MonApp.GetNamespace("MAPI")
    Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox)
    'Set MonMail = MonApp.GetItemFromID(EntryIDCollection)
    Set MonMail = Application.Session.GetItemFromID(EntryIDCollection)

    If MonMail.SenderEmailAddress = "recrutement@dalta-com" Then

    On Error Resume Next
    Set MonApp = GetObject(, "Outlook.Application")
    On Error GoTo 0

    If MonApp Is Nothing Then
    Set MonApp = CreateObject("Outlook.Application")
    End If

    Set Exp = ActiveExplorer
    Set Sel = Exp.Selection

    Set MonNameSpace = MonApp.GetNamespace("MAPI")

    For Each Itm In Sel
    Candidats$ = Mid(Itm.Subject, 28)
    Candidat_Dossier$ = Mid(Itm.Subject, 28, 1)
    Canditat_Test$ = Mid(Itm.Subject, 1, 21)
    CP$ = Mid(Itm.Subject, 22, 5)
    Candidats_CP$ = Candidats$ & " (" & CP$ & ")"

    Itm.Save

    If Canditat_Test$ = "Nouvelle candidature " Then
    Set MonNameSpace = MonApp.GetNamespace("MAPI")
    Set dossier = MonNameSpace.Folders("HOLDING_Candidatures").Folders("TRAVAUX_CANDIDATS").Folders("DALTA_Candidatures").Folders(Candidat_Dossier$)
    Set NewFolder = dossier.Folders.Add(Candidats_CP$) 'DALTA_Candidatures
    Candidat_Dossier_Complet$ = MonNameSpace.Folders("HOLDING_Candidatures").Folders("TRAVAUX_CANDIDATS").Folders("DALTA_Candidatures").Folders(Candidat_Dossier$).Folders(Candidats_CP$)
    ' If CheckForFolder(Folder) = False Then 'dossier n'existe pas
    ' Set myNewFolder = CreateSubFolder(Folder) 'creation du sous dossier
    ' End If

    'Set myNameSpace = objOutlook.GetNamespace("MAPI")
    Set myInbox = MonNameSpace.GetDefaultFolder(olFolderInbox)
    Set myDestFolder = MonNameSpace.Folders("HOLDING_Candidatures").Folders("TRAVAUX_CANDIDATS").Folders("DALTA_Candidatures").Folders(Candidat_Dossier$).Folders(Candidats_CP$)

    Myentryid = Itm.EntryID
    Set Itm = Itm.Move(myDestFolder)

    'Set itm2 = itm2.Move(MonNameSpace.Folders("DALTA_Candidatures").Folders("DALTA_Candidatures").Folders(Candidat_Dossier$).Folders(Candidat$))

    End If

    Next Itm

    Set Itm = Nothing
    Set Sel = Nothing
    Set Exp = Nothing

    End If

    End Sub

    je l'ai placé dans "Application" / "NewMail"
    mais le code se plnte à cette instruction
    Set MonMail = Application.Session.GetItemFromID(EntryIDCollection)

    et je ne sais pas comment résoudre cette erreur.

    C'est pourquoi je fais appel à votre aide...

    Si quelqu'un me m'indiquer comment tester l'existance du dossier avant de deplacer (avec creation sous dossier si besoin)
    Set myDestFolder = MonNameSpace.Folders("HOLDING_Candidatures").Folders("TRAVAUX_CANDIDATS").Folders("DALTA_Candidatures").Folders(Candidat_Dossier$).Folders(Candidats_CP$)

    MERCI D'AVANCE

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 138
    Points : 9 972
    Points
    9 972
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    on peut éventuellement balayer la liste des sous dossiers, si on ne le trouve pas, on le crée

    exemple, si le sous dossier recherché est "Candidats_CP$"

    teste si c'est ok, je ne l'ai pas fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim Dossier As Outlook.MAPIFolder
    Dim Existe As Boolean
     
    For Each Dossier In MonNameSpace.Folders("HOLDING_Candidatures").Folders("TRAVAUX_CANDIDATS").Folders("DALTA_Candidatures").Folders(Candidat_Dossier$).Folders
        If Dossier.Name = "Candidats_CP$" Then
            Set myDestFolder = Dossier
            Existe = True
            Exit For
        End If
    Next Dossier
     
    If Existe = False Then
        Set myDestFolder = MonNameSpace.Folders("HOLDING_Candidatures").Folders("TRAVAUX_CANDIDATS").Folders("DALTA_Candidatures").Folders(Candidat_Dossier$).Folders.Add("Candidats_CP$")
    End If

  3. #3
    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,
    tu peux t'inspirer des codes de cette discussion

    http://www.developpez.net/forums/d15...s-sauvegarder/

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 138
    Points : 9 972
    Points
    9 972
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    je continue d'alimenter le moulin
    on peut éviter de parcourir l'ensemble des sous-dossiers en utilisant à son profit une erreur VBA
    (bien pratique quand on a des procédures qui bouclent sur des centaines de boites mails et des millions de dossiers ... je parle en connaissance de cause )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim MonRepertoire As Outlook.MAPIFolder
     
    Set MonRepertoire = MonNameSpace.Folders("HOLDING_Candidatures").Folders("TRAVAUX_CANDIDATS").Folders("DALTA_Candidatures").Folders(Candidat_Dossier$)
     
    On Error Resume Next
    Set myDestFolder = MonRepertoire.Folders("Candidats_CP$")
    On Error Goto 0
     
    'le dossier n'existe pas, il faut le créer
    If myDestFolder Is Nothing Then Set myDestFolder = MonRepertoire.Folders.Add("Candidats_CP$")

Discussions similaires

  1. [OL-2007] déplacer un mail dans un sous dossier
    Par pepsister dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 30/07/2014, 16h47
  2. Réponses: 2
    Dernier message: 11/01/2013, 12h05
  3. traitement de mail arrivé sur sous dossier publique
    Par nabmed dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 09/08/2007, 08h16
  4. [VBA-O] Classement mails envoyés vers sous-dossiers
    Par jmcrib dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 08/02/2007, 16h42
  5. Lire un fichier situé dans 2 sous dossier...
    Par Pleymo dans le forum Langage
    Réponses: 10
    Dernier message: 08/12/2005, 09h30

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