Bonjour à tous,
Après avoir utilisé vos conseils et astuces pendant des années en tant "qu'invité" je me décide à poser mon 1er post.
Mon besoin est d'interroger la boite de réception OL-2016 depuis une macro Excel et de récupérer certaines données des mails présents.
Jusque là, les dizaines de posts sur le sujet m'ont largement aiguillés. Bref vous faites un super boulot même pour les buses en VBA comme moi
Je me heurte néanmoins à un prb avec les champs personnalisés ou plutôt pour reprendre le terme excat "Champs utilisateur bte réception"
Imaginons que dans ma vue boite de réception j'affiche les colonnes (champs) : DE / OBJET / REçU
J'ajoute un champ perso via : Sélecteur de champ => Champs utilisateur => Nouveau...
Je l'appelle TOTO et je le glisse entre le sujet et la date dans ma boite de réception, ce qui me donne :
DE / OBJET / TOTO /REçU
Avec le code suivant, j'arrive à récupérer dans une feuille excel : L'objet du mail et la date de réception.
Mais pour mon champ TOTO rien à faire ça veut pas! :
Je pense que UserProperties n'est pas la bonne méthode ou alors j'ai un prb de syntaxe ?
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 Sub LireMessagesDeLaBoite2() Dim olApp As Object, NS As Object, Dossier As Object Dim OlExp As Object Dim i As Object Dim DLigne As Long Set olApp = CreateObject("Outlook.Application") Set OlExp = olApp.ActiveExplorer Set NS = olApp.GetNamespace("MAPI") 'Ligne suivante pour selectionner la bonne boite car 2 Bal ouverte dans OL Set Dossier = NS.Folders("Boite2").Folders("Boîte de réception") 'Je boucle pour lire chaque élements de la boite et complète ma feuille Excel For Each i In Dossier.Items 'Je me positionne sur ma feuille Excel DLigne = Cells(Rows.Count, 1).End(xlUp).Row + 1 'Récup Objet du mail Cells(DLigne, 2).Value = i.Subject 'Récup Date de réception Cells(DLigne, 1).Value = Format(i.ReceivedTime, "dd/mm/yyyy") 'Récup Valeur du champ TOTO et là ça foire !!!!! Cells(DLigne, 2).Value = i.UserProperties("TOTO") Next i End Sub
Bref... help !
Partager