Créer une liste de mail sous format Excel depuis outlook

Bonjour,

Ma question est le sujet : créer une liste de mail (de, à , objet, reçu ou envoyé, ... sans le contenu) sous format excel depuis outlook.

Je n'ai trouvé pour l'instant trouvé aucune solution, pouvez vous m'aider ?

merci

Bonsoir,

voici un code trouvé sur internet

Public Sub ReadOutlook()

    Dim olApp As Outlook.Application
    Dim olNamespace As Outlook.Namespace
    Dim olItem As MailItem
    Dim i As Integer
    Dim b As Integer
    Dim olInbox  As Outlook.MAPIFolder
    Dim olFolder As Outlook.MAPIFolder
    Dim lngCol As Long

    Set olApp = New Outlook.Application
    Set olNamespace = olApp.GetNamespace("MAPI")

    Set olInbox = olNamespace.GetDefaultFolder(olFolderInbox)

    Worksheets.Add

    i = 2
    For Each olItem In olInbox.Items
        Cells(i, 1) = olItem.SenderName ' Sender
        Cells(i, 2) = olItem.Subject ' Subject
        Cells(i, 3) = olItem.ReceivedTime ' Received
        Cells(i, 4) = olItem.ReceivedByName ' Recepient
        Cells(i, 5) = olItem.UnRead ' Unread?
        i = i + 1
    Next

    Range("F1").Select
    ActiveCell.FormulaR1C1 = "=COUNTA(C[-5])"
    Calculate

     ' subfolders and items within Inbox

    For Each olFolder In olInbox.Folders

        i = Range("F1") + 2
        For Each olItem In olFolder.Items
            Cells(i, 1) = olItem.SenderName ' Sender
            Cells(i, 2) = olItem.Subject ' Subject
            Cells(i, 3) = olItem.ReceivedTime ' Received
            Cells(i, 4) = olItem.ReceivedByName ' Recepient
            Cells(i, 5) = olItem.UnRead ' Unread?

            i = i + 1
        Next

    Next

    Cells(1, 1) = "Sender"
    Cells(1, 2) = "Subject"
    Cells(1, 3) = "Received"
    Cells(1, 4) = "Recepient"
    Cells(1, 5) = "Unread?"

    For i = 1 To 5
        Columns(i).AutoFit
    Next i

    Set olInbox = Nothing
    Set olNamespace = Nothing
    Set olApp = Nothing

End Sub

Bonsoir,

merci pour votre aide.

Cependant, je rencontre des difficultés lorsque je tente de compiler ce programme.

Y-a-t-il des manips à faire au préalable ?

Je pose cette question car lorsque j'exécute le code, Visual Basic s'arrête à la première ligne avec le message d'erreur "erreur de compilation, type défini par l'utilisateur non défini".

Avez-vous une idée pour résoudre ce problème ?

Je vous remercie.

bonsoir,

j'ai oublié d'indiquer qu'il faut ajouter une référence à la librairie microsoft outlook

dans vbe (l'editeur vba)

menu outils-> reférences->sélectionner microsoft outlook x.x object library (x.x correspond à la version disponible sur ton ordinateur)

re bonsoir,

cette fois le code marche mais uniquement avec la boite de réception.

comment faire par exemple la liste de mails envoyés, ou la liste des mails d'un dossier ?

par avance merci

bonsoir,

à tester

Public Sub ReadOutlook()

    Dim olApp As Outlook.Application
    Dim olNamespace As Outlook.Namespace
    Dim olItem As MailItem
    Dim i As Integer
    Dim b As Integer
    Dim olInbox  As Outlook.MAPIFolder
    Dim olFolder As Outlook.MAPIFolder
    Dim lngCol As Long

    Set olApp = New Outlook.Application
    Set olNamespace = olApp.GetNamespace("MAPI")

    Set olfolders = olNamespace.Folders("nom_du_folder") 'remplacer nom_du_folder par le nom de ton folder

 'pour parcourir tous les folders 
 ' for each olfolders in olnamespace.folders

    Worksheets.Add

    i = 2
    For Each olItem In olfolders.Items
        Cells(i, 1) = olItem.SenderName ' Sender
       Cells(i, 2) = olItem.Subject ' Subject
       Cells(i, 3) = olItem.ReceivedTime ' Received
       Cells(i, 4) = olItem.ReceivedByName ' Recepient
       Cells(i, 5) = olItem.UnRead ' Unread?
       i = i + 1
    Next

    Range("F1").Select
    ActiveCell.FormulaR1C1 = "=COUNTA(C[-5])"
    Calculate

     ' subfolders and items within Inbox

    For Each olFolder In olfolders.Folders

        i = Range("F1") + 2
        For Each olItem In olFolder.Items
            Cells(i, 1) = olItem.SenderName ' Sender
           Cells(i, 2) = olItem.Subject ' Subject
           Cells(i, 3) = olItem.ReceivedTime ' Received
           Cells(i, 4) = olItem.ReceivedByName ' Recepient
           Cells(i, 5) = olItem.UnRead ' Unread?

            i = i + 1
        Next

    Next

    Cells(1, 1) = "Sender"
    Cells(1, 2) = "Subject"
    Cells(1, 3) = "Received"
    Cells(1, 4) = "Recepient"
    Cells(1, 5) = "Unread?"

    For i = 1 To 5
        Columns(i).AutoFit
    Next i

     ' next  'olfolders

    Set olfolders = Nothing
    Set olNamespace = Nothing
    Set olApp = Nothing

End Sub

ce ne fonctionne pas.

je sature un peu pour aujourd’hui je repousse à demain, en plus je suis encore débutant en vba.

si vous avez 5mn essayez de faire une liste entre la boite de réception et les éléments envoyés,

merci pour votre patience, a suivre


ce ne fonctionne pas.

je sature un peu pour aujourd’hui je repousse à demain, en plus je suis encore débutant en vba.

si vous avez 5mn essayez de faire une liste entre la boite de réception et les éléments envoyés,

merci pour votre patience, a suivre

bonjour,

pour info j'ai résolu mon problème. j'ai trouvé un soft c2outlookexport qui fait ça très bien. merci pour votre aide et votre patience.

cordialement,

Rechercher des sujets similaires à "creer liste mail format outlook"