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 :

VBA Envoi de mail avec réponse si correct [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut VBA Envoi de mail avec réponse si correct
    Bonjour,
    j'arrive à envoyer un mail avec Excel via Outlook mais je souhaite avoir d'autres éléments :
    - Savoir si l'adresse était bonne
    - Détruire le mail dans le dossier "Envoyés" d'Outlook

    Merci d'avance.

    Mon 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
    Set Email = CreateObject("Outlook.Application")
    Set EmailMsg = Email.CreateItem(olMailItem)
    Dim Corps_message ' Corps du message
    Corps_message = " Ceci est un mail généré de façon automatique"
    EmailMsg.To = Feuil1.Cells(num_ligne, 1)
    EmailMsg.Subject = "Essai de mail par Excel " & Feuil1.Cells(num_ligne, 1)
    EmailMsg.Body = Corps_message
    EmailMsg.Send
     
    EmailMsg.DeleteAfterSubmit = True 'ici de je souhaite détruire le mail dans le dossier Envoyés !
    EmailMsg.Error : Feuil1.Cells(num_ligne, 3) = "KO" 'ici de je souhaite avoir KO si le mail n'est pas envoyé !
     
    EmailMsg.Error ' Message d'erreur
    On Error GoTo errorHandler
    Exit Sub
    Set EmailMsg = Nothing
    Set Email = Nothing
    errorHandler: MsgBox ("ERREUR")
     
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 256
    Points
    34 256
    Par défaut
    Salut,

    peux-tu préciser ce que tu entends par "adresse bonne" stp ? Est-ce une adresse mail valide (de type a@b.c) ou que l'adresse mail est valide ?

    Exemple dans la
    http://outlook.developpez.com/faq/?p...Existe_Contact

    Pour la suppression une fois le mail envoyé, tu as des pistes dans la
    http://outlook.developpez.com/faq/?p...A_Deplace_mail


    bonne lecture
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    Bonjour jpcheck,

    j'ai le message d'erreur : type défini par l'utilisateur non défini

    le code complet :
    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
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As _
    Boolean)
     'By Oliv' 9/02/2007 pour Outlook 2003
    If Not Item.Class = olMail Then GoTo fin
        Dim objNS As Namespace
        Dim objFolder As MAPIFolder
        Set objNS = Application.GetNamespace("MAPI")
        Set objFolder = objNS.PickFolder
        If TypeName(objFolder) = "Nothing" Then
        Set objNS = Application.GetNamespace("MAPI")
        Set objFolder = objNS.Folders("Boîte de réception").Folders("Éléments supprimés")
        End If
        Set Item.SaveSentMessageFolder = objFolder
    fin:
    End Sub
    Sub essai()
    Set Email = CreateObject("Outlook.Application")
    Set EmailMsg = Email.CreateItem(olMailItem)
    Dim Corps_message ' Corps du message
    Corps_message = " Ceci est un mail généré de façon automatique"
    EmailMsg.To = "moi.@adresse.fr"
    EmailMsg.Subject = "Essai de mail par Excel "
    EmailMsg.Body = Corps_message
    EmailMsg.Send
    ' EmailMsg.DeleteAfterSubmit = True 'ici de je souhaite détruire le mail dans le dossier Envoyés !
    ' EmailMsg.Error: Feuil1.Cells(num_ligne, 3) = "KO"  'ici de je souhaite avoir KO si le mail n'est pas envoyé !
    ' EmailMsg.Error ' Message d'erreur
    ' On Error GoTo errorHandler
    ' Exit Sub
    Set EmailMsg = Nothing
    Set Email = Nothing
    ' errorHandler: MsgBox ("ERREUR")
    End Sub
    J'ai trouvé comment faire pour ne pas avoir le message dans le dossier Envoyés :

    il fallait mettre la ligne au bon endroit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    EmailMsg.DeleteAfterSubmit = True
    EmailMsg.Send
    il ne me reste plus qu'à trouver comment faire pour qu'Outlook me réponde s'il ne trouve pas l'adresse dans mon annuaire local !

  4. #4
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    C'est bon !
    il faut mettre la gestion d'erreur au bon endroit !

    Voici le code corrigé :
    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
     
    Set Email = CreateObject("Outlook.Application")
    Set EmailMsg = Email.CreateItem(olMailItem)
     
    On Error GoTo errorHandler 'ici la gestion des erreurs !
     
    Dim Corps_message ' Corps du message
    Corps_message = " Ceci est un mail généré de façon automatique"
    EmailMsg.To = Feuil1.Cells(num_ligne, 1)
    EmailMsg.Subject = "Essai de mail par Excel " & Feuil1.Cells(num_ligne, 1) 'le mail est dans la colonne 1
    EmailMsg.Body = Corps_message
    EmailMsg.Send
     
    EmailMsg.DeleteAfterSubmit = True 'ici de je souhaite détruire le mail dans le dossier Envoyés !
     
     
    Exit Sub ' si tout est ok !
     
    Set EmailMsg = Nothing
    Set Email = Nothing
     
    errorHandler: 'ici le message d erreur !
    Feuil1.Cells(num_ligne, 3) = "KO" 'ici de je souhaite avoir KO si le mail n'est pas envoyé !
     
     
    End Sub

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

Discussions similaires

  1. [XL-2007] Envoi de mail avec signature par VBA
    Par Klode784 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/06/2019, 20h53
  2. Réponses: 4
    Dernier message: 22/05/2013, 16h33
  3. [XL-2007] Envoi de mail avec VBA Excel et texte enrichi
    Par david5786 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/04/2012, 13h04
  4. [XL-2007] envoi e-mail avec outlook en vba
    Par thibautewbank dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2012, 17h27
  5. VBA Envoi de mail avec Shell, avec piece jointe
    Par micom59 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/08/2009, 11h00

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