Exécution envoi mail en arrière plan (clignotement)

guigol

XLDnaute Junior
Bonjour,

J'ai écrit une macro excel qui fonctionne parfaitement.
Un outil A ouvre des fichiers B, C , D, ... puis y collecte un certain nombre de données
Puis il envoie ces données par mail (voir le code suivant)

j'ai ajouté :
Application.ScreenUpdating = False et Application.ScreenUpdating = True
en début et fin de code pour ne pas avoir de clignotement d'écran. Ce qui fonctionne parfaitement bien pour les différentes ouvertures de fichiers excel.

Malheureusement, le ScreenUpdating ne semble pas gérer d'autres applications comme la création de mail sous Outlook.

Comme j'envoie plusieurs mails d'un coup, je suis au bord de la crise d'epilepsie.

Une idée?

Par avance, merci



Code:
Private Function Mail(Destinataire As String, Titre As String, Texte As String, Optional Document As String) As Boolean
    
    On Error GoTo Erreur
    Set ObjApp = New Outlook.Application
    Set ObjMail = ObjApp.CreateItem(olMailItem)
    Set ObjAttachement = ObjMail.Attachments
    
    ObjMail.To = Destinataire
    ObjMail.Subject = Fichier_Generateur.Sheets(1).Shapes("ZoneTexte 2").TextFrame.Characters.Text
    ObjMail.Body = Fichier_Generateur.Sheets(1).Shapes("ZoneTexte 1").TextFrame.Characters.Text
    If Document <> "" Then ObjAttachement.Add Document
    ObjMail.Display
    Mail = True
    ObjMail.Send                                                        ' envoi du message
    
    Exit Function

Erreur:
    Mail = False
    MsgBox Error
End Function
 

Discussions similaires