1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    août 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : août 2017
    Messages : 1
    Points : 1
    Points
    1

    Par défaut VBA - Miise à jour d'un dossier outlook 2013

    Bonjour,

    Je travaille sur une base de données Access sur laquelle j'effectue notamment des enregistrements de mails outlook afin de stocker dans ma table des informations telles que Titre, Corps, Date de réception, destinataires etc...
    Pour cela, je parcours les mails de ma boîte de réception et effectue des actions si leur date + heure de réception est plus récente que celles du dernier mail enregistré dans ma table. Ma boucle commence au dernier mail reçue dans ma boite de réception et s'arrête lorsque j'arrive à un mail déjà enregistré

    Voici la partie de code principale :

    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
     
     Set OLapp = CreateObject("Outlook.application")
        Set OLspace = OLapp.GetNamespace("MAPI")
        Set BoiteReception = OLspace.Folders("Nom du dossier de messagerie").Folders("Boîte de réception")
     
        Set oFSO = New Scripting.FileSystemObject
     
        Set oRst = CurrentDb.OpenRecordset("SELECT Max(DateReception) FROM tblEnregistrementCourriers")
        etape = False
        PiecesJointes = ""
     
        '-----------------------------------------------------
        'Parcours de la boite de réception
        '-----------------------------------------------------
        CompteurMess = 0
     
        For Each i In BoiteReception.Items
     
            If CDate(Format(i.ReceivedTime, "dd/mm/yyyy hh:mm")) > CDate(Format(oRst.Fields(0), "dd/mm/yyyy hh:mm"))
                .....
            Else
                Exit For
            End If
     
    Next i
    Ce code ne retourne aucune erreur. il fonctionnait très bien sous Outlook 2007 mais depuis que je suis passé sur Outlook 2013, la boucle For Each ne commence pas au dernier mail reçue dans ma boite de réception, ce qui fait que j'enregistre plus aucun mail dans ma table.
    J'ai réussi manuellement à mettre à jour le dossier via Outlook. La boucle For Each a donc bien commencé au dernier mail reçue mais la démarche est longue et contraignante.

    Il y a t-il un moyen de synchroniser mon dossier via mon code VBA ? Avez-vous d'autres solutions ?

    D'avance merci pour vos réponses,


    Nicolas Guibé

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    12 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 12 297
    Points : 27 157
    Points
    27 157

    Par défaut

    Salut,

    tu peux classer tes mails par ordre avec Sort

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set MyMails = BoiteReception.Items
        MyMails.Sort "[ReceivedTime]", olDescending
        '-----------------------------------------------------
        'Parcours de la boite de réception
        '-----------------------------------------------------
        CompteurMess = 0
     
        For Each i In MyMails
            Debug.Print i.Subject
        Next i
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. [OL-2013] Outlook 2013 - Code pour message envoyé sans réponse depuis x jours
    Par SECNA94 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 13/02/2017, 09h52
  2. VBA export des email du jour d un dossier précis vers excel
    Par Bardebrume dans le forum VBA Outlook
    Réponses: 8
    Dernier message: 05/11/2016, 17h37
  3. Réponses: 0
    Dernier message: 14/10/2015, 13h19
  4. [VBA-E] pb envois de mail outlook
    Par minoru dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/08/2005, 19h42
  5. [VBA-E] Jours ouvrables
    Par vuldos dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/04/2005, 11h46

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