L'access aux informations d'email Outlook dans la feuille de calcul Excel (VBA): corps, HTMLbody, RTFbody est <> vide

Merci d'avance pour l'aide … mon Googleness m'a échoué aujourd'hui.

J'ai trouvé de nombreuses sources sur l'access aux informations de messagerie avec excel VBA, et pour la plupart, je peux les faire fonctionner. Mais pour une raison quelconque, la partie la plus critique, le corps du courrier électronique, est vide.

Dim myOlApp As Object, myNameSpace As Object Set myOlApp = CreateObject("Outlook.Application") Set myNameSpace = myOlApp.GetNamespace("MAPI") Set myfolders = myNameSpace.Folders n = 1 Do Until myfolders.Item(n) = "xxxxx" n = n + 1 Loop Set myfolder = myfolders.Item(n) Set myfolder2 = myfolder.Folders("Inbox") c = 12 n = 36 For Each Item In myfolder2.Items itsj = Item.Subject itrt = Item.ReceivedTime itbo = Item.Body Cells(n, c) = itrt Cells(n, c + 1) = itsj Cells(n, c + 2) = itbo n = n + 1 Next Item 

Tout semble fonctionner, sauf Item.Body. J'ai un

Erreur d'exécution "287": erreur définie par l'application ou définie par l'object

En regardant le corps, ou en l'occurrence: .HTMLBody ou .RTFBody, dans la vue locale, ils affichent tous une valeur de <>. J'ai essayé plusieurs courriels différents de différentes personnes et toujours le même résultat. J'ai également foré dans le dossier Locals tous les autres objects pour faire reference directement au courrier électronique et au même résultat. J'utilise Outlook 2010 et Excel.

Merci!

Je n'avais aucun problème avec le mien, sauf qu'il ne s'agissait pas de rien dans la cellule. Donc, je l'ai modifié tout simplement et je l'ai mis dans Application.ActiveSheet:

 Dim myOlApp As Object, myNameSpace As Object Set myOlApp = CreateObject("Outlook.Application") Set myNameSpace = myOlApp.GetNamespace("MAPI") Set myfolders = myNameSpace.Folders n = 1 Do Until myfolders.Item(n) = "xxxxx" n = n + 1 Loop Set myfolder = myfolders.Item(n) Set myfolder2 = myfolder.Folders("Inbox") c = 1 n = 1 For Each Item In myfolder2.Items itsj = Item.Subject itrt = Item.ReceivedTime itbo = Item.Body Application.ActiveSheet.Cells(n, c) = itrt Application.ActiveSheet.Cells(n, c + 1) = itsj Application.ActiveSheet.Cells(n, c + 2) = itbo n = n + 1 Next Item 

Je suis sur Office 2010.