2017-04-21 1 views
0

J'ai eu un problème avec la macro que j'ai faite dans Outlook. Pour reprendre, la macro démarre chaque fois que je reçois un email. Ensuite, il va exécuter quelques autres sous, modifier un fichier Excel et ainsi de suite. Lorsque Outlook est en cours d'exécution et que je reçois un nouvel e-mail, tout fonctionne parfaitement. Le problème se produit lorsque j'ouvre Outlook et que je reçois plusieurs e-mails en même temps.Comment l'événement Add.Item peut-il fonctionner à l'ouverture d'Outlook?

Je suppose que la macro n'a pas assez de temps pour terminer ce qu'elle fait avec le premier e-mail et essaie déjà de recommencer avec la suivante.

Y a-t-il un moyen de suspendre les prochains emails afin d'exécuter la macro pour chaque email, chacun a son tour? Ou peut-être avez-vous une autre solution?

Merci. PS: Je peux fournir le code mais c'est très long.

+1

Avez-vous débogué pour voir où il se bloque? Est-ce toujours la même ligne? Pouvez-vous poster où il plante – Seb

+1

Je pense que nous avons besoin de voir le code et d'obtenir plus d'informations sur le "problème" (fait-il une erreur, est-ce que cela s'arrête, ce qui ne fonctionne pas comme prévu). –

+0

Lire [MCVE] (http://stackoverflow.com/help/mcve). – Rdster

Répondre

0

Le problème se produit lorsque j'ouvre Outlook et que je reçois plusieurs e-mails en même temps.

L'événement NewMailEx de la classe d'application est tiré une fois pour chaque élément reçu qui est traité par Microsoft Outlook. L'élément peut être l'un des différents types d'éléments, par exemple, MailItem, MeetingItem ou SharingItem. La chaîne EntryIDsCollection contient l'ID d'entrée correspondant à cet élément. L'événement NewMailEx se déclenche à l'arrivée d'un nouveau message dans la boîte de réception et avant le traitement des règles client. Vous pouvez utiliser l'ID d'entrée renvoyé dans le tableau EntryIDCollection pour appeler la méthode NameSpace.GetItemFromID et traiter l'élément.

Assurez-vous que les macros VBA sont activées et autorisées à s'exécuter au démarrage d'Outlook. Consultez les paramètres du Centre de gestion de la confidentialité dans Outlook.