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érer les destinataires, expéditeur, CC, objet, de chaque mail


Sujet :

VBA Outlook

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Récupérer les destinataires, expéditeur, CC, objet, de chaque mail
    Bonjour à tous,

    Je suis novice en VBA et j'ai un très faible niveau en algorithmique.

    Dans le cadre d'un projet je dois pouvoir faire une analyse de réseaux sociaux au moyen du logiciel R à partir de boites mail Outlook 2010. Pour cela j'ai besoin de récupérer des données dans outlooks au format CVS ou Text peu m'importe.

    Ce ficher doit contient 4 colonnes, peu importe l'ordre :

    - l'éméteur du mail
    - le destinataire (to, cc, ou cci)
    - le type d'échange (en to, cc ou cci)
    - l'objet du mail

    Pour être plus explicite si ma boite mail contient un mail tel que celui ci

    émis par : jean@toto.fr
    to : Claude@toto.fr, George@toto.fr
    CC : Francois@toto.fr, Marie @toto.fr
    cci: Martine@toto.fr
    Objet : exemple

    Je veux obtenir une liste telle qu'elle :


    Emeteur distinataire type objet
    jean@toto.fr Claude@toto.fr To exemple
    jean@toto.fr George@toto.fr CC exemple
    jean@toto.fr Francois@toto.fr CC exemple
    jean@toto.fr Marie @toto.fr CC exemple
    jean@toto.fr Martine@toto.fr CCi exemple



    Pour cela j'ai développé un petit script en VBA mais je ne suis pas expert, j'admets le code est pas beau et relève de la bidouille, surtout la partie avec les fonctions "replace" utilisé juste pour obtenir une liste.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Sub recupéation()
     
            Dim OlApp As Outlook.Application
            Dim olMail As Outlook.MailItem
            Dim mapdossier As Outlook.MAPIFolder
     
            Dim ligne 
            Dim expediteur
            Dim destinataire
            Dim copie 
            Dim copiecachee 
     
            Set OlApp = Outlook.Application
            Set mapdossier = OlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
     
            Dim i As Integer
            i = 0 'compteur de mail'
     
            'emplacement du fichier à récuperer
     
            Dim oFSO As Scripting.FileSystemObject
            Dim donnees As Scripting.TextStream
            Set oFSO = CreateObject("scripting.FilesystemObject")
            Set donnees = oFSO.CreateTextFile("C:\Users\hyppopo\Desktop\test2019.txt", True)
     
            'récupération des données des mails'
     
        For Each olMail In mapdossier.Items
     
     
                expediteur = olMail.senderemailaddress
                destinataire = destinataire & olMail.To & "; " & vbCrLf
                copie = copie & olMail.CC & "; " & vbCrLf
                copiecachee = copiecachee & olMail.BCC & "; " & vbCrLf
     
                'pour en faire une liste '
     
                destinataire = Replace(destinataire, ";", ";" & "to" & ";" & expediteur & ";" & olMail.Subject & vbCrLf)
                copie = Replace(copie, ";", ";" & "cc" & ";" & expediteur & ";" & olMail.Subject & vbCrLf)
                copiecachee = Replace(copiecachee, ";", ";" & "bcc" & ";" & expediteur & ";" & olMail.Subject & vbCrLf)
     
     
                i = i + 1         
     
        Next
     
            MsgBox i & " mails ont été analysés"
     
            With donnees
                .writeline destinataire
                .writeline copie
                .writeline copiecachee
                 donnees.Close
           End With
     
     
        Set donnees = Nothing
        Set oFSO = Nothing
     
     
    End Sub


    Premièrement, j'arrive vite a saturation de la mémoire et j'arrive à un message d'erreur : "Mémoire insuffisante" .

    Deuxièmement, seule le dossier message recus est analysé hors j'aurai besoin de faire cela pour l'ensemble des messages, ajouter une nouvelle colonne pour signifier dans quel dossier ce trouve le mail (message recus,element envoyé,message envoyés ... etc)

    troisièmement, j'ai plusieurs messagerie dans mon outlook (xxx@toto.fr, yyy@toto.fr ...etc. ) , y a t-il un moyen de toutes les analyser ?


    Je vous remercie de votre aide, j'espère avoir été clair, si jamais n'hésitez pas à me poser des questions.

    Cordialement,

  2. #2
    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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/01/2013, 16h09
  2. récupérer les "properties" d'un objet
    Par Gugli dans le forum Composants VCL
    Réponses: 3
    Dernier message: 08/10/2009, 16h14
  3. [POO] Récupérer les valeurs d'un objet en PHP
    Par latristef01 dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2008, 16h11
  4. [Type "var"] Comment récupérer les propriétés de l'objet ?
    Par Firedeal dans le forum Framework .NET
    Réponses: 7
    Dernier message: 31/07/2008, 22h57
  5. Réponses: 4
    Dernier message: 15/07/2008, 17h56

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