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,