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 :

VBA pour intégrer les dates de réceptions dans les objets ?


Sujet :

Outlook

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut VBA pour intégrer les dates de réceptions dans les objets ?
    Bonjour,

    Dans Outlook, il est facilement possible de modifier manuellement l'objet d'un mail reçu. J'utilise cette fonction pour écrire la date de réception de mes mails devant l'objet initial. Ainsi lorsque je les glisse dans un dossier sous windows, je peux facilement retracer l'historique de mes mails ("impossible" à faire avec l'explorateur windows car celui-ci affiche la date d'export du mail, et non la date de réception du mail).

    Je me suis demandé si il était possible de créer une macro dans "ThisOutlookSession" du type :

    Private Sub Application_ItemLoad(ByVal Item As Object)

    - Pour chaque nouveau mail reçu
    - "Objet du nouveau mail reçu" = "Date de réception du mail - Objet du nouveau mail reçu"

    End Sub



    Avant de poser cette question j'ai bien entendu regardé ceci : http://dolphy35.developpez.com/artic...ook/vba/#LVI-A

    Mais tout ce que j'ai pu essayer n'a pas fonctionné, et je n'ai plus de solution...

    Si quelqu'un a une petite idée, ou une autre solution (pas forcément du VBA)..

    Merci d'avance.

    PS : Une autre solution est peut-être possible (que je n'ai pas testé) du type :

    Sub testDate()

    - Sélection d'une liste de mails
    - Pour chaque mail dans la sélection
    - "Objet du mail dans la sélection" = "Date de réception du mail - Objet du mail dans la sélection"

    End Sub

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Solution "provisoire"
    Bonjour,

    J'ai écris ce petit bout de code pour le moment :

    'Private Sub Application_ItemLoad(ByVal Item As Object)

    'Dim Expl As Explorer
    'Dim Select As Selection
    'Dim nvmail As MailItem

    'Set Expl = ActiveExplorer
    'Set Select = Expl.Selection

    'For Each nvmail In Select

    'If Mid(nvmail.Subject, 5, 1) <> "-" Then
    'nvmail.Subject = Format(nvmail.ReceivedTime, "yyyy-mm-dd") & " - " & nvmail.Subject
    'nvmail.Save
    'End If

    'Next nvmail

    'Set nvmail = Nothing
    'Set Select = Nothing
    'Set Expl = Nothing

    'End Sub


    Cependant j'ai un petit soucis avec les Appointment qui font planter mon code..

    Une idée simple ? j'ai essayé de définir "uniquement pour nvmail" mais ca n'a pas fonctionné j'ai du oublier quelque chose...

  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,
    Premièrement pour une question sur VBA outlook il y a un sous forum dédié.

    Ensuite, je pense que tu n'utilises pas le bon événement mais tu n'es pas loin.

    essaye avec
    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
    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
        Dim nvmail As MailItem
        Dim varEntryIDs
        Dim objItem
        Dim i As Integer
        varEntryIDs = Split(EntryIDCollection, ",")
        For i = 0 To UBound(varEntryIDs)
            Set objItem = Application.Session.GetItemFromID(varEntryIDs(i))
            If objItem.class = olmail Then
                Set nvmail = objItem
                If Mid(nvmail.Subject, 5, 1) <> "-" Then
                    nvmail.Subject = Format(nvmail.ReceivedTime, "yyyy-mm-dd") & " - " & nvmail.Subject
                    nvmail.Save
                End If
            End If
     
        Next
    End Sub

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Merci, c'est parfait.

    Désolé pour le mauvais emplacement du sujet..

  5. #5
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim varEntryIDs
    Dim objItem
    Dim i As Integer
    varEntryIDs = Split(EntryIDCollection, ",")
    For i = 0 To UBound(varEntryIDs)
    Set objItem = Application.Session.GetItemFromID(varEntryIDs(i))
    If objItem.Class = olMail Then
    Set nvmail = objItem
    Cette partie est floue, je suppose que c'est grâce à ça que l'on arrive à différencier un Mail simple d'un AppointementItem.

    J'ai essayé de refaire cette exercice ou l'opération ne se fait pas automatiquement, mais à l'aide d'un bouton. Cependant je me retrouve confronter au même problème, les appointementItem bloquent mon code, ou alors rien ne se passe...
    Bonjour,
    C'est mieux de continuer dans la discussion.

    La macro se lance quand OUTLOOK reçoit un Mail (ou autre) mais il peut y en avoir plusieurs c'est pouce cela que l'on parcours la collection EntryIDCollection

    Pour différencier un Email d'un autre élément on utilise effectivement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If objItem.Class = olMail Then

    Pour lancer ce code sur le mail ouvert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Sub change_sujet ()
        Dim nvmail As MailItem
         Dim objItem
     
            Set objItem = ActiveInspector.CurrentItem
            If objItem.class = olmail Then
                Set nvmail = objItem
                If Mid(nvmail.Subject, 5, 1) <> "-" Then
                    nvmail.Subject = Format(nvmail.ReceivedTime, "yyyy-mm-dd") & " - " & nvmail.Subject
                    nvmail.Save
                End If
            End If
    End Sub

Discussions similaires

  1. weekend et jours fériés dans les dates VBA
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 08/05/2018, 20h43
  2. [VB6] Soustraction Date & Time + Images dans les menus
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/07/2006, 17h10
  3. Extraire les semaines dans les dates
    Par LE CORRE dans le forum C
    Réponses: 4
    Dernier message: 22/02/2006, 12h34
  4. Réponses: 4
    Dernier message: 02/06/2004, 11h19
  5. EDI pour intégrer efficacement de l'assembleur dans du C/C++
    Par Selenite dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 04/04/2004, 18h27

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