Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment envoyer un email si on clique sur le bouton dans Excel?

Supposons que vous deviez envoyer un courrier électronique via Outlook en cliquant sur un bouton dans la feuille de calcul Excel, comment pouvez-vous faire? Cet article présentera une méthode VBA pour l'obtenir en détails.

Envoyer un e-mail si le bouton est cliqué avec le code VBA


Envoyez facilement des e-mails via Outlook en fonction de la liste de diffusion créée:

Le bouton Envoyer des emails L'utilitaire de Kutools pour Excel aide les utilisateurs à envoyer des e-mails via Outlook en fonction de la liste de diffusion créée dans Excel. Voir la capture d'écran:

Kutools for Excel: avec plus que 200 compléments Excel pratiques, libre d'essayer sans limitation dans les jours 60. Téléchargez et essai gratuit maintenant!


Envoyer un e-mail si le bouton est cliqué avec le code VBA


Veuillez procéder comme suit pour envoyer un courrier électronique via Outlook si un bouton de commande est cliqué dans un classeur Excel.

1. Insérer un bouton de commande dans votre feuille de calcul en cliquant Développeur > insérer > Bouton de commande (contrôle ActiveX). Voir la capture d'écran:

2. Cliquez avec le bouton droit sur le bouton de commande inséré, puis cliquez sur Voir le code à partir du menu clic droit comme ci-dessous capture d'écran.

3. Dans l'ouverture Microsoft Visual Basic pour applications fenêtre, remplacez le code d'origine dans la fenêtre Code avec le script VBA suivant.

Code VBA: Envoyer un e-mail si vous cliquez sur le bouton dans Excel

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Body content" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
                  On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "Test email send by button clicking"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Remarques:

1). S'il vous plaît changer le corps de l'e-mail que vous avez besoin dans le xMailBody ligne dans le code.

2). Remplace le Courriel avec l'adresse e-mail du destinataire en ligne .To = "Adresse e-mail".

3). Spécifiez les destinataires Cc et Cci comme vous le souhaitez dans .CC = "" et .Bcc = "" sections.

4). Modifier l'objet de l'e-mail en ligne .Subject = "Test email envoyé par le bouton cliquant".

4. appuie sur le autre + Q touches simultanément pour fermer le Microsoft Visual Basic pour applications fenêtre.

5. Désactivez le mode Création en cliquant sur Développeur > Mode de conception. Voir la capture d'écran:

A partir de maintenant, chaque fois que vous cliquez sur le bouton de commande, un email sera créé automatiquement avec les destinataires spécifiés, le sujet et le corps. S'il vous plaît envoyez l'email en cliquant sur le Envoyer .

Note: Le code VBA ne fonctionne que lorsque vous utilisez Outlook en tant que votre programme de messagerie.


Articles Liés:



Outils de productivité recommandés

Office Tab

étoile d'or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d'or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d'or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d'écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    erick · 7 months ago
    using this VBA code, can I reference cell information within the body of the email? For instance, how would I reference cell values to the code below?

    xMailBody = "Body content" & vbNewLine & vbNewLine & _
    "This is line 1" & vbNewLine & _
    "This is line 2"

    Also, using the (.TO = "email address") code. how can I have the "email address" pull in an email address from a cell in the column next to it.


    Thanks,
  • To post as a guest, your comment is unpublished.
    Reinaldo Batista · 7 months ago
    How can I attach the Active Workbook to the email when i press the button?
    • To post as a guest, your comment is unpublished.
      crystal · 7 months ago
      Good day,
      Just below ".Body = xMailBody" add the following
      .Attachments.Add ActiveWorkbook.FullName
  • To post as a guest, your comment is unpublished.
    Ravin Chatelall · 8 months ago
    Hi all first off a Big thank you, this post is very helpful and works for the attachment. This works for me but no updates are saved in the sheet you have to hit the save button. I would like the attachment to have whatever is currently in the excel sheet.

    I can accomplish this by using the excel built in E-mail feature but I wanted a button as I need to hardcode the specific email address.

    So in summary I would like to know:

    I would like to know if there is a way to: after a user open the excel workbook and made edits if the button will keep the attachment with the updates?
    • To post as a guest, your comment is unpublished.
      crystal · 8 months ago
      Good Day,
      The code has been optimized. Please have a try and thanks for your comment.

      Private Sub CommandButton1_Click()
      'Updated by Extendoffice 2017/9/14
      Dim xOutApp As Object
      Dim xOutMail As Object
      Dim xMailBody As String
      On Error Resume Next
      Set xOutApp = CreateObject("Outlook.Application")
      Set xOutMail = xOutApp.CreateItem(0)
      ActiveWorkbook.Save
      xMailBody = "Body content" & vbNewLine & vbNewLine & _
      "This is line 1" & vbNewLine & _
      "This is line 2"
      On Error Resume Next
      With xOutMail
      .To = "Email Address"
      .CC = ""
      .BCC = ""
      .Subject = "Test email send by button clicking"
      .Body = xMailBody
      .Attachments.Add ActiveWorkbook.FullName
      .Display 'or use .Send
      End With
      On Error GoTo 0
      Set xOutMail = Nothing
      Set xOutApp = Nothing
      End Sub
  • To post as a guest, your comment is unpublished.
    Tina · 10 months ago
    it only generates one email and will keep overwriting the contents instead of opening up multiply email drafts.
  • To post as a guest, your comment is unpublished.
    choppa · 11 months ago
    hi is it possible to set it up so that I dont have to press send - it automatically sends the email????
    • To post as a guest, your comment is unpublished.
      crystal · 9 months ago
      Hi,
      Please replace the line .Display with .Send in above VBA code.