Bonjour à tous,

voilà mon souci :
J'ai un code VBA sous access qui envoi un mail sous outlook.

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
'--- Lancement procédure vers Outlook ---'
 
'Ouvre Outlook
Set OLKapp = CreateObject("Outlook.Application")
 
'--- Création du mail pour les EF
Set OLKitem = OLKapp.CreateItem(olMailItem)
 
OLKitem.to = "NomDeMonGroupe1"    'Nom des listes dans contact dans Outlook
OLKitem.cc = "NomDeMonGroupe2"    'Nom des listes dans contact dans Outlook
OLKitem.Subject = " "
 
'Texte du message
OLKitem.Body = "Ligne " & wLigne & " à " & wPtA & " - " & wMotif 
OLKitem.Display     'Affiche le mail en cours de création
WaitSeconds (15)    'Temporiste le prog VBA pour laisser le temps à Outlook de rechercher les listes de contacts
 
OLKitem.Send
Set OLKitem = Nothing
Set OLKapp = Nothing
Quand je pointe ".to" sur une liste de contact qui est créée dans outlook si je ne code pas le ".display" il me retourne directement une erreur comme quoi il ne trouve pas le nom du contact.
En faisant ".display", j'ai remarqué que outlook "cherche" la liste dans ses contacts (du coup dans le champs du mail du destinataire, la liste passe en écriture gras et surligné, outlook a trouvé la correspondance dans ses contacts)

Du coup j'ai rajouté dans mon code un "WaitSeconds(15)" qui temporise ma programmation pour permettre à outlook de trouver la correspondance entre le nom de la liste que j'ai rentré dans mon code VBA et celle de ses contacts. (15 = 15s)
Je trouve ça très bancale, surtout que de temps en temps, les 15s ne sont pas suffisantes et me plantes la prog...

Je ne sais pas si j'ai bien exprimé mon problème, mais si quelqu'un à une solution ...
Par exemple existe-t-il un test sur outlook (ex : readystate ?) pour temporiser jusqu'à qu'il est trouvé la correspondance des listes ?
Merci