Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Liste des propriétés d'un contact d'Outlook

5 réponses
Avatar
J-Pierre
Bonsoir tout le monde,

Ras-le-bol, j'y ai passé ma journée, pas moyen de lister toutes les propriétés et leur valeur d'un contact Outlook.

Parfois le code plante, car certaines propriétés sont des collections et donc pas affichables. J'ai testé en dur le nom de
certaines propriétés, mais c'est très empirique, alors:

Première question : Comment peut-on tester le type d'une propriété d'un contact Outlook ?

Deuxième question : Pendant que j'y suis, voilà le code et les résultats, si vous avez le courage de chercher, d'abord, vous
remarquerez que c'est du très bon code car adapté directement du code de Pierre, ensuite, pourriez-vous me dire pourquoi je
n'affiche que quelques propriétés du contact et non pas toutes ?

Bonne nuit tout le monde, et n'oubliez pas, à minuit, sur France2, la finale de foot US, si si, le Super Bowl.....tiens, je
vais faire un post spécial.

J-Pierre

LE CODE
________


Dim Ol_App As New Outlook.Application
Dim Ol_Mapi As Outlook.NameSpace
Dim Ol_Folder As Outlook.MAPIFolder
Dim Ol_Items As Outlook.Items
Dim Ol_Contact As Outlook.ContactItem
Dim objItems As Outlook.ItemProperties
Dim objItem As Outlook.ItemProperty

Set Ol_App = CreateObject("Outlook.Application")
Set Ol_Mapi = Ol_App.GetNamespace("MAPI")
Set Ol_Folder = Ol_Mapi.GetDefaultFolder(olFolderContacts)
Set Ol_Items = Ol_Folder.Items

Me.RDV_edit = ""

For Each Ol_Contact In Ol_Items
If Ol_Contact.fullName = "MonNomAMoi " Then
Me.RDV_edit = Me.RDV_edit & "Nom complet : " & Ol_Contact.fullName & " " & vbCrLf
Set objItems = Ol_Contact.ItemProperties
For Each objItem In objItems
If objItem.Name <> "Actions" And objItem.Name <> "Attachments" _
And objItem.Name <> "Userproperties" And objItem.Name <> "Links" _
And objItem.Name <> "Itemproperties" Then
Me.RDV_edit = Me.RDV_edit & objItem.Name & " : " & objItem.Value & vbCrLf
End If
Next objItem
Me.RDV_edit = Me.RDV_edit & vbCrLf
End If
Next Ol_Contact

Set objItems = Nothing
Set Ol_Contact = Nothing
Set Ol_Items = Nothing
Set Ol_Folder = Nothing
Set Ol_Mapi = Nothing
Set Ol_App = Nothing



LE RESULTAT
_____________
Nom complet : MonNomAMoi
Application : Outlook
Class : 40
Session : Mapi
Parent : Contacts
BillingInformation :
Body :
Categories :
Companies :
ConversationIndex : 

5 réponses

Avatar
J-Pierre
Je crois que c'est presque bon, l'affichage des propriétés s'arrêtait à caus d'un caractère non imprimable pour la propriété
ConversationIndex.

Voilà donc la partie du code à corriger:

For Each objItem In objItems
If objItem.Name <> "Actions" And objItem.Name <> "Attachments" _
And objItem.Name <> "Userproperties" And objItem.Name <> "Links" _
And objItem.Name <> "Itemproperties" And objItem.Name <> "ConversationIndex" Then
Me.RDV_edit = Me.RDV_edit & objItem.Name & " : " & objItem.Value & vbCrLf
End If
Next objItem

Ceci dit, ce serait quand même mieux de trouver une manière générique de ne pas afficher certaines propriétés.......

Et n'oubliez pas le match de foot US, faudra pas pleurer et dire que vous n'étiez pas prévenus.

J-Pierre


"J-Pierre" a écrit dans le message de news: eY1S$
Bonsoir tout le monde,

Ras-le-bol, j'y ai passé ma journée, pas moyen de lister toutes les propriétés et leur valeur d'un contact Outlook.

Parfois le code plante, car certaines propriétés sont des collections et donc pas affichables. J'ai testé en dur le nom de
certaines propriétés, mais c'est très empirique, alors:

Première question : Comment peut-on tester le type d'une propriété d'un contact Outlook ?

Deuxième question : Pendant que j'y suis, voilà le code et les résultats, si vous avez le courage de chercher, d'abord, vous
remarquerez que c'est du très bon code car adapté directement du code de Pierre, ensuite, pourriez-vous me dire pourquoi je
n'affiche que quelques propriétés du contact et non pas toutes ?

Bonne nuit tout le monde, et n'oubliez pas, à minuit, sur France2, la finale de foot US, si si, le Super Bowl.....tiens, je
vais faire un post spécial.

J-Pierre

LE CODE
________


Dim Ol_App As New Outlook.Application
Dim Ol_Mapi As Outlook.NameSpace
Dim Ol_Folder As Outlook.MAPIFolder
Dim Ol_Items As Outlook.Items
Dim Ol_Contact As Outlook.ContactItem
Dim objItems As Outlook.ItemProperties
Dim objItem As Outlook.ItemProperty

Set Ol_App = CreateObject("Outlook.Application")
Set Ol_Mapi = Ol_App.GetNamespace("MAPI")
Set Ol_Folder = Ol_Mapi.GetDefaultFolder(olFolderContacts)
Set Ol_Items = Ol_Folder.Items

Me.RDV_edit = ""

For Each Ol_Contact In Ol_Items
If Ol_Contact.fullName = "MonNomAMoi " Then
Me.RDV_edit = Me.RDV_edit & "Nom complet : " & Ol_Contact.fullName & " " & vbCrLf
Set objItems = Ol_Contact.ItemProperties
For Each objItem In objItems
If objItem.Name <> "Actions" And objItem.Name <> "Attachments" _
And objItem.Name <> "Userproperties" And objItem.Name <> "Links" _
And objItem.Name <> "Itemproperties" Then
Me.RDV_edit = Me.RDV_edit & objItem.Name & " : " & objItem.Value & vbCrLf
End If
Next objItem
Me.RDV_edit = Me.RDV_edit & vbCrLf
End If
Next Ol_Contact

Set objItems = Nothing
Set Ol_Contact = Nothing
Set Ol_Items = Nothing
Set Ol_Folder = Nothing
Set Ol_Mapi = Nothing
Set Ol_App = Nothing



LE RESULTAT
_____________
Nom complet : MonNomAMoi
Application : Outlook
Class : 40
Session : Mapi
Parent : Contacts
BillingInformation :
Body :
Categories :
Companies :
ConversationIndex : 



Avatar
J-Pierre
Il y avait encore quelques propriétés avec des caractères non affichables dans leur valeur. Voilà donc le code qui affiche
toute la collection. Reste que ce serait bien de trouver une autre technique pour éliminer ces propriétés. Si vous aez une
idée.........

Comme il est difficile de trouver l'équivalence entre les noms des champs affichés en français dans Outlook et le nom anglais
de la propriété en VBA, ce code permet de les identifier facilement par leur valeur.

J-Pierre

Private Sub Liste_Proprietes()

Dim Ol_App As New Outlook.Application
Dim Ol_Mapi As Outlook.NameSpace
Dim Ol_Folder As Outlook.MAPIFolder
Dim Ol_Items As Outlook.Items
Dim Ol_Contact As Outlook.ContactItem
Dim objItems As Outlook.ItemProperties
Dim objItem As Outlook.ItemProperty

Set Ol_App = CreateObject("Outlook.Application")
Set Ol_Mapi = Ol_App.GetNamespace("MAPI")
Set Ol_Folder = Ol_Mapi.GetDefaultFolder(olFolderContacts)
Set Ol_Items = Ol_Folder.Items

Me.RDV_edit = Null

For Each Ol_Contact In Ol_Items
'sélectionne un "Nom Complet" qui apparaît dans la boîte de dialogue
'de modification de contact
If Ol_Contact.fullName = "MonNomAMoi" Then
Me.RDV_edit = Me.RDV_edit & "Nom complet : " & Ol_Contact.fullName & " " & vbCrLf
Set objItems = Ol_Contact.ItemProperties
For Each objItem In objItems
If objItem.Name <> "Actions" And objItem.Name <> "Attachments" _
And objItem.Name <> "Userproperties" And objItem.Name <> "Links" _
And objItem.Name <> "Itemproperties" And objItem.Name <> "ConversationIndex" _
And objItem.Name <> "Email1EntryID" And objItem.Name <> "Email2EntryID" _
And objItem.Name <> "Email3EntryID" And objItem.Name <> "Email2EntryID" Then
Me.RDV_edit = Me.RDV_edit & objItem.Name & " : " & objItem.Value & vbCrLf
End If
Next objItem
Me.RDV_edit = Me.RDV_edit & vbCrLf & "***** toutes les propriétés affichées*****"
End If
Next Ol_Contact

Set objItems = Nothing
Set Ol_Contact = Nothing
Set Ol_Items = Nothing
Set Ol_Folder = Nothing
Set Ol_Mapi = Nothing
Set Ol_App = Nothing

End Sub
Avatar
J-Pierre
Ca a été un peu longuet, mais cette fois-ci, je teste le type de propriété affichable ou pas.

Les 2 types de propriétés suivants ne sont pas sélectionnés:
objItem.Type = olCombination
objItem.Type = olOutlookInternal

Voilà le code, soyez contents, je vais vous foutre la paix....au moins pour ce sujet......

J-Pierre

Private Sub Liste_Proprietes()

Dim Ol_App As New Outlook.Application
Dim Ol_Mapi As Outlook.NameSpace
Dim Ol_Folder As Outlook.MAPIFolder
Dim Ol_Items As Outlook.Items
Dim Ol_Contact As Outlook.ContactItem
Dim objItems As Outlook.ItemProperties
Dim objItem As Outlook.ItemProperty

Set Ol_App = CreateObject("Outlook.Application")
Set Ol_Mapi = Ol_App.GetNamespace("MAPI")
Set Ol_Folder = Ol_Mapi.GetDefaultFolder(olFolderContacts)
Set Ol_Items = Ol_Folder.Items

Me.RDV_edit = "Toutes les propriétés de 'fullName = MonNomAMoi" & vbCrLf & vbCrLf
DoEvents

For Each Ol_Contact In Ol_Items
If Ol_Contact.fullName = "MonNomAMoi" Then
Me.RDV_edit = Me.RDV_edit & "Nom complet : " & Ol_Contact.fullName & " " & vbCrLf
Set objItems = Ol_Contact.ItemProperties
For Each objItem In objItems
If objItem.Type = olCurrency _
Or objItem.Type = olDateTime _
Or objItem.Type = olDuration _
Or objItem.Type = olFormula _
Or objItem.Type = olKeywords _
Or objItem.Type = olNumber _
Or objItem.Type = olPercent _
Or objItem.Type = olText _
Or objItem.Type = olYesNo Then
Me.RDV_edit = Me.RDV_edit & objItem.Name & " : " & _
objItem.Type & " : " & objItem.Value & vbCrLf
End If
Next objItem
Me.RDV_edit = Me.RDV_edit & vbCrLf & "***** toutes les propriétés affichées *****"
End If
Next Ol_Contact

Set objItems = Nothing
Set Ol_Contact = Nothing
Set Ol_Items = Nothing
Set Ol_Folder = Nothing
Set Ol_Mapi = Nothing
Set Ol_App = Nothing

End Sub
Avatar
3stone
Salut J-Pierre,

"J-Pierre"
| Ca a été un peu longuet, mais cette fois-ci, je teste le type de propriété affichable ou pas.


Sur quelle version d'Outlook s.t.p. ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
J-Pierre
Outlokk XP 2002

"3stone" a écrit dans le message de news:
Salut J-Pierre,

"J-Pierre"
| Ca a été un peu longuet, mais cette fois-ci, je teste le type de propriété affichable ou pas.


Sur quelle version d'Outlook s.t.p. ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/