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 - Userform et envoi de mail [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Par défaut VBA - Userform et envoi de mail
    Bonjour,

    J'ai créé un Userform qui contient un bouton de commande.
    Au clic sur ce bouton, un mail contenant les infos du formulaire part vers l'adresse mail indiquée.
    En plus, j'aimerais aussi qu'un mail de bonne réception parte vers la personne ayant renseignée le formulaire (et dont son Email est renseignée dans une textbox). Je n'arrive pas à traiter ce point. Est-ce que quelqu'un aurait des pistes?

    Pour info, il faudrait que cela fonctionne sur Outlook.

    Voici mon code actuel :

    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
    Private Sub CommandButton1_Click()
     
      Dim MonOutlook As Object
      Dim MonMessage As Object
      Dim corps As String
     
      Set MonOutlook = CreateObject("Outlook.Application")
      Set MonMessage = MonOutlook.createitem(0)
      MonMessage.to = "test@test.com"
      MonMessage.Subject = "Sujet"
     
        corps = "blablabla"  
      MonMessage.body = corps
      MonMessage.send
      Set MonOutlook = Nothing
      Suggestion.Hide
     
    End Sub
    Merci à vous !

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu peux mettre la personne en copie cachée (champs Cci) ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonMessage.BCC = ' ici tu mets la valeur du TextBox

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonjour,
    je sais pas si c'est ça que tu veux mais regarde quand même!

    http://www.developpez.net/forums/d31...on/#post221619

  4. #4
    Membre averti
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Par défaut
    Merci à Joe pour cette réponse rapide, mais avec cette solution je ne peux pas personnaliser le mail pour l'expéditeur.

    J'ai effectivement oublié de préciser ce point, je souhaite que l'accusé de réception soit différent du mail de départ pour qu'il ressemble à ceci: "Bonjour, Nous avons bien pris en compte votre demande, elle sera traitée dans les plus brefs délais".

    Citation Envoyé par rdurupt Voir le message
    bonjour,
    je sais pas si c'est ça que tu veux mais regarde quand même!

    http://www.developpez.net/forums/d31...on/#post221619
    Désolé, même problématique.. ça ne permet pas d'envoyer un mail de bonne prise en compte. Ici c'est un accusé de lecture.

  5. #5
    Invité
    Invité(e)
    Par défaut
    oui j'ai posté 1 minute trop top!

    tu veux connaitre l'adresse Outlook du détenteur du compte mail actif?

  6. #6
    Membre averti
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Par défaut
    Non, je veux pouvoir envoyer un mail de bonne réception à la personne ayant rempli le formulaire et dont son email (de cette personne) est renseignée dans une textbox du userform.
    J'ai donc l'email , c'est pas un souci ça.

    J'aimerais un mail personnalisé, et non un accusé de réception ou une copie.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    dans ce cas la il faut que tu envoie 2 mails
    1 ton mail avec les données userform
    le 2 avec le destinataire ton tex box et le corps
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Membre averti
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Par défaut
    Bonjour,

    Merci à vous pour vos retours.
    Au final c'est ce que j'ai fait, j'ai créé les 2 mails et cela fonctionne.

    Par contre mon code ne fonctionne plus depuis que j'ai ajouté un test pour vérifier si une textbox est vide.
    Soit je n'ai plus aucun mail qui part, soit je n'ai que le 2ème qui part.
    J'ai un problème avec le Exit Sub je crois.

    J'ai fait plusieurs tentative avec le Exit Sub avant le End If et vice versa et puis d'autres tests en vain.
    Je profite de vos lumières

    Voici mon extrait de 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    Private Sub CommandButton1_Click()
     
      ' Test si les champs sont vides
        If Suggestion.Besoin.Text = "" Then
        MsgBox "Veuillez renseigner votre besoin ou quitter le formulaire avec la croix"
        Me.Besoin.SetFocus
        ElseIf Suggestion.Email.Text = "" Then
        MsgBox "Veuillez renseigner votre email ou quitter le formulaire avec la croix"
        Me.Email.SetFocus
        End If
        Exit Sub
     
     
      ' declaration des variables
     
      Dim MonOutlook As Object
      Dim MonMessage As Object
      Dim Message_Exp As Object
      Dim corps As String
      Dim corps_Exp As String
     
      Set MonOutlook = CreateObject("Outlook.Application")
     
      ' creation du message pour le destinataire
      Set MonMessage = MonOutlook.createitem(0)
      MonMessage.to = "test@test.com"
      MonMessage.Subject = "sujet"
     
        corps = "blabla"
        MonMessage.body = corps
     
     
        ' creation du message pour l'expediteur
        Set MonOutlook = CreateObject("Outlook.Application")
        Set Message_Exp = MonOutlook.createitem(0)
        Message_Exp.to = Suggestion.Email.Value
        Message_Exp.Subject = "sujet2"
     
        corps_Exp = "blabla"
        Message_Exp.body = corps_Exp
     
        ' envoi des mails
        Message_Exp.send
        MonMessage.send
     
     
       Set MonOutlook = Nothing
     
       Suggestion.Hide
     
    End Sub

  9. #9
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut,

    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
    54
     
    Private Sub CommandButton1_Click()
     
      ' Test si les champs sont vides
        If Suggestion.Besoin.Text = "" Then
        MsgBox "Veuillez renseigner votre besoin ou quitter le formulaire avec la croix"
        Me.Besoin.SetFocus
    Exit Sub
        ElseIf Suggestion.Email.Text = "" Then
        MsgBox "Veuillez renseigner votre email ou quitter le formulaire avec la croix"
        Me.Email.SetFocus
    Exit Sub
        End If
     
     
     
      ' declaration des variables
     
      Dim MonOutlook As Object
      Dim MonMessage As Object
      Dim Message_Exp As Object
      Dim corps As String
      Dim corps_Exp As String
     
      Set MonOutlook = CreateObject("Outlook.Application")
     
      ' creation du message pour le destinataire
      Set MonMessage = MonOutlook.createitem(0)
      MonMessage.to = "test@test.com"
      MonMessage.Subject = "sujet"
     
        corps = "blabla"
        MonMessage.body = corps
     
     
        ' creation du message pour l'expediteur
       '  Set MonOutlook = CreateObject("Outlook.Application") <== inutile de créer 2 fois le même objet!!
        Set Message_Exp = MonOutlook.createitem(0)
        Message_Exp.to = Suggestion.Email.Value
        Message_Exp.Subject = "sujet2"
     
        corps_Exp = "blabla"
        Message_Exp.body = corps_Exp
     
        ' envoi des mails
        Message_Exp.send
        MonMessage.send
     
     
       Set MonOutlook = Nothing
     
       Suggestion.Hide
     
    End Sub

  10. #10
    Membre averti
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Par défaut
    Pour répondre à Philippe :
    Désolé, j'ai déjà essayé tout ça..
    avec les 2 exit sub et avec/sans la création des 2 objets.

    ça ne fonctionne pas, j'ai aucun mail qui part et ma userform ne se ferme pas.


  11. #11
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Ok, mais as tu exécuté cette proc. en mode pas à pas, pour voir ou ça plante?
    As tu des messages d'erreur?
    Jusqu’où le programme s'exécute correctement?

  12. #12
    Membre averti
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Par défaut
    Philippe, j'avais essayé avec les 2 exit sub mais avec le dernier en le mettant après le end if !

    Donc ça fonctionne bien si je le mets avant !!

    C'est cool, merci

  13. #13
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Ok, super!
    N'oublies pas de passer ton fil en Résolu!

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

Discussions similaires

  1. [débutant][vba] envoi de mails
    Par Christophe93250 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/05/2006, 17h53
  2. [VBA-E]Envoi de mail journalier
    Par illight dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 28/04/2006, 10h30
  3. [VBA-A] Envoi de mail sans passer par Outlook ou autre.
    Par genius99 dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/02/2006, 07h50
  4. Envoi de mail via un macro vba sur excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2005, 18h51
  5. [VBA-E] pb envois de mail outlook
    Par minoru dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/08/2005, 19h42

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