IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Exécution envoi mail en arrière plan (clignotement) [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 66
    Points : 48
    Points
    48
    Par défaut Exécution envoi mail en arrière plan (clignotement)
    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 : 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
    21
    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

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,
    l'instruction ObjMail.Display affiche 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
    21
    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
    ensuit il est possible que les option d'Outlook interdise l'exécution de macro provenant d'une autre application comme Excel il faut modifier le option pour l'autoriser!

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 66
    Points : 48
    Points
    48
    Par défaut
    Effectivement.

    j'ai enlevé ObjMail.Display, et tout fonctionne.

    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment exécuter une activité en arrière plan
    Par fodrix dans le forum Android
    Réponses: 1
    Dernier message: 09/05/2013, 17h17
  2. [XL-2007] Problème de format d'enregistrement/exécution envoi mail
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/01/2013, 20h17
  3. Exécuter une tâche en "arrière plan" dans un container web
    Par Tyler_Durden dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/08/2011, 15h06
  4. Exécuter une tache en arrière-plan
    Par EvilAngel dans le forum Windows
    Réponses: 6
    Dernier message: 20/02/2007, 11h15
  5. [Système] Exécutable se lançant en arrière plan
    Par manshoon dans le forum Langage
    Réponses: 3
    Dernier message: 16/08/2006, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo