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 e-mail via Outlook lorsque le classeur est enregistré dans Excel?

Cet article parle d'envoyer un courrier électronique via Outlook lorsqu'un classeur spécifique est enregistré dans Excel. S'il vous plaît faire comme le montre le tutoriel.

Envoyer un e-mail via Outlook lorsque le classeur est enregistré avec le code VBA


Envoyer un e-mail via Outlook lorsque le classeur est enregistré avec le code VBA


Pour envoyer un courrier électronique via Outlook lorsque le classeur est enregistré dans Excel, procédez comme suit.

1. Veuillez d'abord enregistrer le classeur en tant que classeur Excel macro-activé. Cliquez sur Fichier > Enregistrer sous. Dans le Enregistrer sous boîte de dialogue, sélectionnez un dossier pour enregistrer le classeur, nommez-le dans la zone Nom de fichier, sélectionnez Cahier de travail Excel avec macro-activé du Enregistrer en tant que type de liste déroulante, puis cliquez sur Épargnez bouton. Voir la capture d'écran:

2. Ouvrez le classeur Excel Macro-activé que vous avez enregistré tout à l'heure, appuyez sur autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. dans le Microsoft Visual Basic pour applications fenêtre, s'il vous plaît double-cliquez ThisWorkbook dans la barre de gauche, copiez et collez le code VBA ci-dessous ThisWorkbook fenêtre de code. Voir la capture d'écran:

Code VBA: Envoyer un e-mail lorsque le classeur est enregistré

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20181102
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .CC = ""
        .Subject = "The workbook has been saved"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

Note: S'il vous plaît remplacer le Courriel avec l'adresse e-mail du destinataire en ligne .To = "Adresse e-mail", et changez le Cc, le Sujet ainsi que les champs de corps dans le code de VBA comme vous avez besoin.

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

À partir de maintenant, lorsque vous mettez à jour le classeur et l'enregistrez, un e-mail sera créé automatiquement avec le classeur mis à jour joint. S'il vous plaît cliquer sur le Envoyer bouton pour envoyer l'email. Voir la capture d'écran:

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.
    Chris · 6 months ago
    Hi, nice article! One thing ive been trying to achieve with this is to attach the current state of the workbook to the email.

    At the moment, it only sends the original state of the file and doesnt include any changes the user would have made.

    Any ideas on how to implement this using a macro?
    • To post as a guest, your comment is unpublished.
      crystal · 5 months ago
      Hi Chris,
      The code has been updated with the problem solved, please have a try. Thank you for your comment.
      • To post as a guest, your comment is unpublished.
        Tin Hwee Lee · 12 days ago
        Hi Chris,

        I have chanced upon the same issue.
        Currently the codes are used in the "beforesave" module.
        Which means that the email will send the spreadsheet that is before saved.

        There is another module "aftersave".
        I applied the code in this module and it worked like a charm.
  • To post as a guest, your comment is unpublished.
    Robert · 7 months ago
    Dear all, I would like to ask how to attach functional link to certain folder on server, if I paste the link, it appears in the workbook just like plain text and so it doensn't work in received e-mail, how can I turn it into link, so recepiants can click on it?
    I would like to use this way instead sending enclosed excel file.
    Thanks for advice
    • To post as a guest, your comment is unpublished.
      Grant · 1 months ago
      I put this in the body of the email and it worked for me...
      "file:///Z:\dir1\dir2\dir3\Test1.xlsm"
    • To post as a guest, your comment is unpublished.
      crystal · 7 months ago
      Hi Robert,
      Sorry can’t help with this, welcome to post any question about Excel to our forum: https://www.extendoffice.com/forum.html. You will get more Excel supports from our professional or other Excel fans.
  • To post as a guest, your comment is unpublished.
    Antonio · 9 months ago
    Gracias. Consulta: utilizando esta misma rutina, como podría enviar el correo a un correo específico dependiendo el valor de otra celda?
  • To post as a guest, your comment is unpublished.
    Jermaine · 1 years ago
    How to automate the email notification in VBA based on Date range, without having to see the pop up for security permission to allow VBA to send the email.