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 :

VBA - Miise à jour d'un dossier outlook 2013


Sujet :

VBA Outlook

  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
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 269
    Points
    34 269
    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
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    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