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

Automation d'envoi de mail VBA Outlook : ?

13 réponses
Avatar
Gadget
Salut à tous.
J'ai fait une routine d'envoi de mails par VBA Excel avec appel précoce à
Outlook. Ces mails comprennent 3 pièces jointes chacun et sont envoyés
nombreux à chaque fois.
Voici la routine d'envoi de mail :

Sub EnvoyerMailOutlook(TableauPJ() As String, Expediteur As String,
Destinataire As String, Sujet As String, Corps As String)

Application.DisplayAlerts = False

Dim i
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
olmail.To = Destinataire
olmail.Subject = Sujet
olmail.Body = Corps
For i = 1 To 3
If TableauPJ(i) = "" Then Exit For
olmail.Attachments.Add TableauPJ(i)
Next i
olmail.Send
Application.DisplayAlerts = True
Set myolapp = CreateObject("Outlook.Application")
myolapp.Quit
Attendre 5
ol.Quit
End Sub

En surveillant le gestionnaire de tâches, j'ai remarqué que la macro ouvre
des instances d'Outlook sans jamais les refermer, si bien qu'après une
douzaine de mails, j'ai un message du genre 'Outlook est utilisé par trop
d'applications'. J'ai essayé à l'aveugle de modifier la routine, en enlevant
par exemple les articles 'New'. Il ne m'ouvrait alors qu'une instance, mais
n'envoyait jamais rien (bien que les mails se retourvent dasns les 'Elements
envoyés').
Comment puis-je refermer les instances ouvertes sans interrompre l'envoi du
mail (chaque mail faisant 400ko, son envoi peut prendre quelques secondes)
?

3 réponses

1 2
Avatar
michdenis
| Les constantes cdoDispositionNotificationTo et cdoReturnReceiptTo n'étant
| pas définies dans mon projet

Ces constantes appartiennent à la bibliothèque :
"Microsoft CDO for Windows 2000 Library" que tu es
supposé avoir ajouter à ton projet. La version d'excel
n'est pas pertinente en ce qui concerne ces constantes.

Si tu fais la gestion de tes courriels par "Microsoft Outlook"
cela fonctionne très bien. Est-ce possible d'avoir la même chose
en utilisant "Outlook Express" ? Je n'en sais rien... mais à ce que
je sache, "Outlook Express" ne possède pas beaucoup d'options
qui soit définissable par programmation.
Avatar
Gadget
Oups au temps pour moi, j'avais coché Microsoft CDO 1.21 Library au lieu de
l'autre.
Néanmoins, après avoir rétabli le code tel que tu me le proposes, quand je
m'envoie un mail avec cette macro, il ne m'est toujours pas demandé d'avis
de lecture...
A plus.
"michdenis" a écrit dans le message de news:
e3k%
| Les constantes cdoDispositionNotificationTo et cdoReturnReceiptTo n'étant
| pas définies dans mon projet

Ces constantes appartiennent à la bibliothèque :
"Microsoft CDO for Windows 2000 Library" que tu es
supposé avoir ajouter à ton projet. La version d'excel
n'est pas pertinente en ce qui concerne ces constantes.

Si tu fais la gestion de tes courriels par "Microsoft Outlook"
cela fonctionne très bien. Est-ce possible d'avoir la même chose
en utilisant "Outlook Express" ? Je n'en sais rien... mais à ce que
je sache, "Outlook Express" ne possède pas beaucoup d'options
qui soit définissable par programmation.





Avatar
michdenis
Moi je n'ai aucun problème ... mais si tu désires plus de détails
tu vas sur le forum de Microsoft Outlook ...



"Gadget" a écrit dans le message de news:
48bc1091$0$861$
Oups au temps pour moi, j'avais coché Microsoft CDO 1.21 Library au lieu de
l'autre.
Néanmoins, après avoir rétabli le code tel que tu me le proposes, quand je
m'envoie un mail avec cette macro, il ne m'est toujours pas demandé d'avis
de lecture...
A plus.
"michdenis" a écrit dans le message de news:
e3k%
| Les constantes cdoDispositionNotificationTo et cdoReturnReceiptTo n'étant
| pas définies dans mon projet

Ces constantes appartiennent à la bibliothèque :
"Microsoft CDO for Windows 2000 Library" que tu es
supposé avoir ajouter à ton projet. La version d'excel
n'est pas pertinente en ce qui concerne ces constantes.

Si tu fais la gestion de tes courriels par "Microsoft Outlook"
cela fonctionne très bien. Est-ce possible d'avoir la même chose
en utilisant "Outlook Express" ? Je n'en sais rien... mais à ce que
je sache, "Outlook Express" ne possède pas beaucoup d'options
qui soit définissable par programmation.





1 2