Bonjour,

En vba, je n'arrive pas à trouver la bonne syntaxe pour passer en variable le nom d'un item Contact d'outlook.

De manière synthètique :
- quand je nomme l'item contact par son nom réel : tout fonctionne
Exemple : objContact.FirstName = Evaluer(rs!PrenomContact)
.FirstName : c'est une propriété d'un contact dans Outlook (plus précisément = Propriété ContactItem.FirstName (Outlook))
rs!PrenomContact : c'est un champ d'une base de donnée Access

Origine de l'exemple :
"Synchroniser les contacts entre access et outlook" par Denis Hulo.
Procédure UpdateContactOutllok
https://denishulo.developpez.com/tut...ccess-outlook/
Public Sub UpdateContactOutlook(objContact As Object, rs As DAO.Recordset, objSpace As Object)


Mon souci :
- je voudrais mettre en variable le nom de la propriété du ContactItem
Exemple : mavariable = FirstName
pour l'appeler ensuite par objContact.MaVariable

J'ai essayé avec une variable string mais cela ne fonctionne pas.
objContact.Item(MaVariable) : ne fonctionne pas non plus car .Item attend un Index (ie le numéro de l'item dans ContactItem)

C'est parce que je ne maîtrise pas comment la passer en variable.
Je pense que FirstName doit-être défini comme un objet mais je n'arrive pas à le formuler.
Peux-être en utilisant : ItemProperty.Name

Idée :
Dim objitem As ItemProperty
set xxx = xxxx

Nota : l'inverse dans Access je peux le faire en utilisant Fields()
Exemple : 'rs.NomChampAccess' est devenu 'rs.Fields(strMaVariable)' avec 'strMaVariable=NomChampAccess'


Une idée ?
Merci