Bonjour à tous,
voilà mon souci :
J'ai un code VBA sous access qui envoi un mail sous outlook.
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.
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
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
Partager