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

modifier un contact en VBA

3 réponses
Avatar
news.free.fr
Outlook 2003 :

Bonjour,

Comment en Vba peut on modifier un contact outlook ?

merci

Seb

3 réponses

Avatar
Geo
Bonjour à Seb qui nous a écrit :

Outlook 2003 :

Bonjour,

Comment en Vba peut on modifier un contact outlook ?



vous savez, ici on ne paie pas au mot, ni à la ligne.
Il faut avoir envie de répondre à une question aussi vague.
Un seul contact ?
Je serais curieux de savoir pourquoi.
Quelle(s) caractéristique(s) du contact ?
Il y en a 168 !

--
A+
Avatar
news.free.fr
bonjour,

Effectivement j'ai été un peu leger dans ma demande,

concrêtement :

Je fais un synchro entre une base access et un dossier de contacts outlook.
Lorsqu'une modif est faite sur une fiche sous outlook, la synchro mets à
jour dans la bdd.
Pour ce faire je fais une comparaison de la date de modif de la fiche
(propriété LastModificationTime) et la date de modif stockée dans la base.
[Code]
'////////////////////////////////////////////////////////////////////////////////
'alimente la variable LastDateModif avec la date de modif de la fiche
'////////////////////////////////////////////////////////////////////////////////
LastDateModif = mycont.LastModificationTime

'////////////////////////////////////////////////////////////////////////////////
'compare la date de modif de la fiche avec la date de modif présente dans la
Bdd
'Si la fiche est plus récente, l'enregistrement est mis a jour dans la Bdd
'////////////////////////////////////////////////////////////////////////////////
If LastDateModif > rs.Fields(18) Then
rs.Edit
rs.Fields(2) = Nz(mycont.LastName, " ")
rs.Fields(3) = Nz(mycont.FirstName, " ")
rs.Fields(4) = mycont.Email1Address
rs.Fields(1) = Nz(mycont.CompanyName, " ")
rs.Fields(18) = mycont.LastModificationTime
rs.Fields(19) = mycont.EntryID
rs.Update
End If
/[Code]

Mon probleme se situe lorsque que je fais l'inverse :
Date de modif plus recente dans la bdd que dans outlook. Je cherche à
modifier la fiche avec le code ci dessous :

[code]
'////////////////////////////////////////////////////////////////////////////////
'compare la date de modif de la fiche avec la date de modif présente dans la
Bdd
'Si la fiche de la bdd est plus récente, l'enregistrement est mis a jour
dans outlook
'////////////////////////////////////////////////////////////////////////////////

LastDateModif = oCont.LastModificationTime

If rs.Fields(18) > LastDateModif Then

oCont.CompanyName = rs.Fields(1)
oCont.LastName = rs.Fields(2)
oCont.FirstName = rs.Fields(3)
oCont.Email1Address = rs.Fields(4)
oCont.Save

End If

[/code]

mais cela ne fonctionne pas


"Geo" a écrit dans le message de news:

Bonjour à Seb qui nous a écrit :

Outlook 2003 :

Bonjour,

Comment en Vba peut on modifier un contact outlook ?



vous savez, ici on ne paie pas au mot, ni à la ligne.
Il faut avoir envie de répondre à une question aussi vague.
Un seul contact ?
Je serais curieux de savoir pourquoi.
Quelle(s) caractéristique(s) du contact ?
Il y en a 168 !

--
A+




Avatar
Geo
Bonjour


LastDateModif = oCont.LastModificationTime

If rs.Fields(18) > LastDateModif Then
oCont.CompanyName = rs.Fields(1)
oCont.LastName = rs.Fields(2)
oCont.FirstName = rs.Fields(3)
oCont.Email1Address = rs.Fields(4)
oCont.Save
End If

[/code]

mais cela ne fonctionne pas




Perso je ne vois rien de particulier, ce serait un peu longuet de
tenter de reproduire votre situation.
Vous avez sans doute analysé le déroulement, vous passez dans la
condition ?

Dans une de mes macros j'ai ajouté un DoEvents avant le Save et j'avais
noté en commentaire :
' Pour laisser le temps à la liste de se mettre à jour
C'est un peu loin.
Vous pouvez toujours essayer, ça ne mange pas de pain.

--
A+