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 :

Outlook s'efface devant Excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2020
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2020
    Messages : 83
    Points : 28
    Points
    28
    Par défaut Outlook s'efface devant Excel
    Bonjour,

    J'ai inséré, dans un fichier Excel, une macro permettant d'ouvrir Outlook et de rédiger un courriel, avec certaines données récupérées dans le fichier Excel. L'utilisateur n'a plus qu'à cliquer sur Envoyer, ou ajouter certains éléments de rédaction s'il le souhaite. Le problème, pour lequel je ne sais pas s'il y a une solution, c'est qu'Outlook reste en arrière-plan. Si l'on est attentif, on voit l'icône d'Outlook s'activer, mais il faut cliquer sur elle pour que le message s'affiche devant Excel. Un utilisateur pas ou peu attentif pourrait penser que la macro n'a pas fonctionné. Y a-t-il une instruction qui permettrait au brouillon d'Outlook de s'afficher en premier plan d'Excel?

    Merci pour toutes pistes utiles!

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2020
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2020
    Messages : 83
    Points : 28
    Points
    28
    Par défaut
    N'ayant pas reçu de réponse, et désireux d'essayer d'avancer dans mon projet, j'ai sondé ChatGPT. Il m'a proposé ce code:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub EnvoyerEmail()
     
        Dim OutlookApp As Object
        Dim OutlookMail As Object
        Dim MailBody As String
     
        ' Créer une instance de l'application Outlook
        Set OutlookApp = CreateObject("Outlook.Application")
        ' Créer un nouvel élément de message
        Set OutlookMail = OutlookApp.CreateItem(0)
     
        ' Corps du message (vous pouvez le personnaliser selon vos besoins)
        MailBody = "Bonjour," & vbCrLf & vbCrLf & _
                   "Ceci est un exemple de message automatique depuis Excel."
     
        ' Définir les propriétés du message
        With OutlookMail
            .To = "destinataire@email.com"
            .Subject = "Sujet du message"
            .Body = MailBody
        End With
     
        ' Activer la fenêtre Outlook
        AppActivate "Microsoft Outlook"
     
        ' Afficher le brouillon du message à l'avant-plan
        OutlookMail.Display
     
        ' Libérer les objets Outlook
        Set OutlookMail = Nothing
        Set OutlookApp = Nothing
     
    End Sub
    Problème: Outlook s'ouvre correctement, avec le message prêt à envoyer, mais les deux dernières lignes génèrent des erreurs. Tout d'abord, l'instruction AppActivate "Microsoft Outlook" génère une erreur d'exécution 5. Si je la désactive, la ligne suivante génère aussi une erreur (erreur 91). Du coup, je dois désactiver ces deux lignes... ce qui fait qu'Outlook reste à l'arrière-plan. Si quelqu'un voit plus clair que ChatGPT, c'est avec plaisir...

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 846
    Points : 28 760
    Points
    28 760
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sauf erreur de ma part, l'instruction AppActivate ne s'utilise qu'avec un Shell donc à supprimer de cette procédure et chez moi la ligne OutlookMail.Display fait bien apparaître la fenêtre Outlook. C'est d'ailleurs ce que j'utilise pour envoyer un mail, si je souhaite le visualiser avant l'envoi.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Lire des données outlook à partir d'excel
    Par GENI36 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/10/2008, 16h18
  2. Lire des données outlook à partir d'excel
    Par GENI36 dans le forum Outlook
    Réponses: 3
    Dernier message: 16/09/2008, 11h10
  3. pilotage outlook express par VBA excel
    Par epaminondas dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2008, 09h52
  4. Contact Outlook à partir d'Excel
    Par Memes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/12/2005, 11h33

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