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 :

Envoyer un mail avec Outlook par Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut Envoyer un mail avec Outlook par Excel
    Bonjour à tous,

    J'ai écrit ce code :

    J'envoie le mail non pas par .send mais en utilisant les sendkeys (pour éviter le message de confirmation )
    Ca fonctionne bien dans le cas où Outlook est déjà lancé...
    Par contre dans le cas où Outlook n'est pas lancé... le sendkey se fait trop rapidement et l'email n'est pas envoyé... Comment faire pour demander de faire le sendkeys qu'une fois que Outlook est bien lancé (sans utiliser de timer) ?


    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub Envoi_Mail()
     
        Dim eMail As Object
     
        Set eMail = CreateObject("Outlook.Application").CreateItem(olMailItem)
     
        With eMail
            .to = "moi@domaine.fr"
            .Subject = "Test mail auto"
            .Body = "Mail automatique"
            .Display
            '.Send 'je n'utilise pas cette fonction car message de confirmation apparaît
        End With
     
     
        SendKeys "^{ENTER}" 'Envoi du mail par les touches Ctrl + Enter
     
     
        Set eMail = Nothing 'Réinit
     
    End Sub
     
     
     
    Sub Ouvrir_Outlook()
     
        'Lance Outlook en mode Hide : La fenêtre est masquée et activée
        Shell "OUTLOOK.EXE", vbHide
     
    End Sub
     
     
     
    Sub Test_Outlook_Run()
     
        'Permet de tester si Outlook est lancé ou pas
     
     
        Dim OL As Object
     
        On Error Resume Next
        Set OL = GetObject(, "Outlook.Application")
     
        'Cas si outlook n'est pas lancé
        If OL Is Nothing Then
            Ouvrir_Outlook
            Envoi_Mail
        'Cas si outlook est lancé
        Else
            Envoi_Mail
        End If
     
    End Sub


    Merci

    A+

    Dams'

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Tu peux essayer d'activer l'application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim monOlApp as Outlook.application
    Set monOlApp = CreateObject("Outlook.Application") 'GetObject si déjà ouvert
    ....
    AppActivate monOlApp.ActiveWindow.Caption
    SendKeys ...
    C'est juste une idée, je ne sais pas si cela marche.

    Sinon pour éviter le message Outlook, tu peux utiliser ClickYes.

    PGZ

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    marche pas trop
    même problème... tout dépend à la vitesse à laquelle Outlook s'ouvre... dès fois ça marche dès fois pas...

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    essaie avec
    après la ligne qui lance Outlook s'il n'est pas ouvert.

    Sinon, tu peux aussi faire un Application.Wait d'une valeur acceptable dans le cas où Outlook est déjà ouvert.

  5. #5
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Citation Envoyé par damsmut Voir le message
    marche pas trop
    même problème... tout dépend à la vitesse à laquelle Outlook s'ouvre... dès fois ça marche dès fois pas...
    Au temps pour moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AppActivate monOlApp.ActiveWindow.Caption,True
    Il manquait un paramètre!

    PGZ

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    non marche pas
    la fenêtre du nouveau mail s'ouvre bien, mais le mail n'est pas envoyé

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par Godzestla Voir le message
    Bonjour,

    essaie avec
    après la ligne qui lance Outlook s'il n'est pas ouvert.

    Sinon, tu peux aussi faire un Application.Wait d'une valeur acceptable dans le cas où Outlook est déjà ouvert.
    - doevents ne marche pas non plus
    - et wait... hmm je n'aime pas trop cette solution car cela va dépendre de la vitesse à laquelle s'ouvre Outklook sur chaque pc

    .. je crois que je vais devoir me résigner à utiliser .send

  8. #8
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    2 idées alternatives :
    1) Tu ouvres systématiquement Outlook au début de ton code
    2) Tu contrôle si outlokk est actif ou pas (je ne suis pas capable de t'aider sur ce coup-là)

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    1)bof
    2)je le fais déjà dans le code et c'est bien ce cas qui pose problème dès fois

  10. #10
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Il reste quand même la solution que tout le monde utilise : ClickYes.

    PGZ

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    c'est quoi ça ? ClickYes ?

  12. #12
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Citation Envoyé par damsmut Voir le message
    c'est quoi ça ? ClickYes ?
    C'est un utilitaire de Context Magic qui permet d'acquitter les alertes antivirales d'Outlook.
    Tu peux le télécharger .

    PGZ

  13. #13
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    ah ! je ne connaissais pas merci pour l'info

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

Discussions similaires

  1. [XL-2007] Envoyer un mail avec outlook à partir d'excel avec des tableaux dans le corps du mail
    Par BarneyYagami dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/11/2014, 16h48
  2. [ActiveX] Envoyer un mail avec Outlook
    Par superman33 dans le forum Débuter
    Réponses: 3
    Dernier message: 09/12/2011, 10h59
  3. envoyer un mail avec jsp (sans passer par outlook)
    Par tntneo dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 16/04/2009, 21h35
  4. Envoyer un mail avec client par défaut
    Par cryborg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/11/2007, 22h16
  5. Envoyer un mail avec Excel
    Par ilcocodrillo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/07/2007, 21h58

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