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 :

Récupération chronologique des pièces jointes


Sujet :

VBA Outlook

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    ingé
    Inscrit en
    Janvier 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : ingé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 9
    Par défaut Récupération chronologique des pièces jointes
    Bonjour à tous,

    Je suis en train de travailler sur un projet qui permet de pouvoir récupérer des pièces jointes envoyé sur ma boite mail Outlook et qui vient se copier sur mon serveur.

    Ma macro fonctionne bien lorsque Outlook est ouvert.
    Les différentes étapes de ma macro:
    • Dès que je reçois un nouveau mail ma macro se lance
    • Tester l'objet du mail
    • Changer le status du mail en "lu"
    • Déplacer le mail dans un dossier Outlook particulier
    • Enregistrer la pièce jointe dans un dossier de mon serveur


    Mon problème est qu'il faudrait que ma macro fonctionne lorsque Outlook est fermé. Il me semble que ce n'est pas possible à faire.

    Du coup, je voulais créer une autre macro que je viendrais activer à chaque fois que je lance Outlook afin de pouvoir traiter les différentes pièces jointes des mails reçus.
    J'ai une contrainte qui est que cette macro s’exécute de façon chronologique afin que si j'ai deux fois le même nom de pièce jointe, la plus récente reste sur le serveur.

    Pour ce qui est de mon niveau VBA, je n'ai fait qu'apprendre via différent tutos/forum du coup mon niveau n'est pas top ...

    J'aimerai savoir si vous pensez qu'il est judicieux de résoudre mon problème comme ça? Sinon si vous avez une autre solution pour mon problème, je suis preneur.


    Merci d'avance,

    Yan

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    Salut,

    la macro qui se lance au demarrage d'Outlook est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Application_Startup()
     
    End Sub
    Attention toutefois, lors de l'ouverture, tes mails ne sont pas encore tous arrives
    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 :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    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

  3. #3
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Si ton comptes OUTLOOK est bien paramétré avec l'option "Utiliser le mode Exchange mis en cache" (en bas à droite cela doit être noté "Connecté à Microsoft Exchange")
    Ta macro va être traité au fur et à mesure de la réception de Emails.

    Par contre rien ne garanti qu'ils arrivent par ordre Chronologique d'envoi.

    le mieux serait d'avoir un "variable public" où tu enregistres la date et tu la compare au suivant
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    ingé
    Inscrit en
    Janvier 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : ingé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 9
    Par défaut
    Merci de vos réponses

    Citation Envoyé par Jean-Philippe André Voir le message

    Attention toutefois, lors de l'ouverture, tes mails ne sont pas encore tous arrives
    D'accord, du coup il va falloir que j'utilise une variable comme me préconise Oliv-.
    Je suis bien connecté à Microsoft Exchange pour info.

    Du coup si vous êtes d'accord, il va falloir que je fasse deux boucles:
    • une qui me permet de tester les différentes dates de réception des mails afin de pouvoir faire un ordre de traitement;
    • une autre qui permet d'activer ma macro en fonction de l'ordre de traitement.


    Çà à l'air facile à faire écrit comme ça si seulement

    Une autre petite question, actuellement mon code se lance lors de la réception d'un nouveau Mail, pourquoi du coup lorsqu'on lance Outlook le code ne se lance pas alors que je reçois mes mails reçus pendant que Outlook était fermé. Ils ne sont pas considérés comme nouveaux mail reçus?

    Yan.

  5. #5
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par yanrcc Voir le message
    Une autre petite question, actuellement mon code se lance lors de la réception d'un nouveau Mail, pourquoi du coup lorsqu'on lance Outlook le code ne se lance pas alors que je reçois mes mails reçus pendant que Outlook était fermé. Ils ne sont pas considérés comme nouveaux mail reçus?

    Yan.
    oui ca devrait !

    tu devrais publier ton code qu'on y voit plus clair
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    ingé
    Inscrit en
    Janvier 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : ingé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 9
    Par défaut
    Ci-joint mon code que j'ai mis dans ThisOutlookSession:

    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
     
    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
     
        Dim MonApp As Outlook.Application
        Dim MonMail As Object
        Dim MonNameSpace As Outlook.NameSpace
        Dim MonDossier As Outlook.Folder
        Dim strAttachment As String
        Dim NbAttachments As Integer
        Dim body As String
        Dim chemin As String
        Dim i As Integer
     
     
        Set MonApp = Outlook.Application
        Set MonNameSpace = MonApp.GetNamespace("MAPI")
        Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox)
        Set MonMail = Application.Session.GetItemFromID(EntryIDCollection)
        Set XLapp = CreateObject("Excel.Application")
        numero = MonDossier.Items.Count
        Set MonMail = MonDossier.Items(numero)
        chemin = "C:\Users\yan\Desktop\DONNEES\"
     
     
        If MonMail.Subject = "donnees_test" Then
            MonMail.UnRead = False
            MonMail.Move MonDossier.Folders("Donnees")
            NbAttachments = MonMail.Attachments.Count
            i = 1
                    Do While i <= NbAttachments
                    strAttachment = MonMail.Attachments.Item(i).FileName
                    MonMail.Attachments.Item(i).SaveAsFile chemin & strAttachment
                    i = i + 1
                    Loop
     
        End If
     
     
    End Sub
    S'il te faut plus d'informations, n'hésites pas. Merci d'avance.

    Yan

  7. #7
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Qu'est ce qui te fait penser que la macro ne se déclenche pas à l'ouverture ? rien n'est déplacé ?
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

Discussions similaires

  1. [FAQ] [Access 2007] Gestion des pièces jointes en VBA
    Par Tofalu dans le forum Contribuez
    Réponses: 4
    Dernier message: 04/07/2006, 01h16
  2. gestion des Piéces Jointes
    Par dimkha dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 01/12/2005, 18h09
  3. Encodage des pièces jointes d'un mail : toujours base64 ?
    Par Michaël dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 15/10/2005, 13h34
  4. affichage des pièces jointe sous outllook 2000
    Par darkbm dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 29/10/2003, 12h32

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