Note: The other languages of the website are Google-translated. Back to English
English English

Comment envoyer un e-mail via Outlook lorsque le classeur est enregistré dans Excel?

Cet article parle de l'envoi d'un e-mail via Outlook lorsqu'un classeur spécifique est enregistré dans Excel. Veuillez 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 e-mail 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 prenant en charge les macros. Cliquez sur Déposez le > 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 le Enregistrer bouton. Voir la capture d'écran:

2. Ouvrez le classeur Excel prenant en charge les macros que vous venez d'enregistrer, appuyez sur le bouton 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, veuillez double-cliquer Ce classeur dans la barre de gauche, puis copiez et collez le code VBA ci-dessous dans le Ce classeur 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

Notes: Veuillez remplacer le Adresse courriel avec l'adresse e-mail du destinataire en ligne .To = "Adresse e-mail" et modifiez les champs Cc, Subject ainsi que body dans le code VBA selon vos besoins.

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 que vous l'enregistrez, un e-mail sera créé automatiquement avec le classeur mis à jour en pièce jointe. Veuillez cliquer sur le Envoyer bouton pour envoyer l'e-mail. Voir la capture d'écran:

Notes: Le code VBA ne fonctionne que lorsque vous utilisez Outlook comme programme de messagerie.


Articles Liés:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (17)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Comment automatiser la notification par e-mail dans VBA en fonction de la plage de dates, sans avoir à voir la fenêtre contextuelle d'autorisation de sécurité pour autoriser VBA à envoyer l'e-mail.
Ce commentaire a été minimisé par le modérateur sur le site
Gracias. Consulta : utilizando esta misma rutina, como podría enviar el correo a un correo específico dependiendo el valor de otra celda ?
Ce commentaire a été minimisé par le modérateur sur le site
Cher tous, je voudrais demander comment attacher un lien fonctionnel à certains dossiers sur le serveur, si je colle le lien, il apparaît dans le classeur comme du texte brut et donc cela ne fonctionne pas dans les e-mails reçus, comment puis-je le transformer en lien, afin que les destinataires puissent cliquer dessus ?
Je voudrais utiliser cette méthode au lieu d'envoyer le fichier Excel ci-joint.
Merci du conseil
Ce commentaire a été minimisé par le modérateur sur le site
Salut Robert,
Désolé, je ne peux pas vous aider, n'hésitez pas à poster toute question concernant Excel sur notre forum : https://www.extendoffice.com/forum.html. Vous obtiendrez plus de supports Excel de la part de nos professionnels ou d'autres fans d'Excel.
Ce commentaire a été minimisé par le modérateur sur le site
Je l'ai mis dans le corps de l'e-mail et cela a fonctionné pour moi...
"fichier:///Z:\dir1\dir2\dir3\Test1.xlsm"
Ce commentaire a été minimisé par le modérateur sur le site
Salut, bel article ! Une chose que j'ai essayé de réaliser avec cela est de joindre l'état actuel du classeur à l'e-mail.

Pour le moment, il n'envoie que l'état d'origine du fichier et n'inclut aucune modification que l'utilisateur aurait apportée.

Des idées sur la façon de mettre en œuvre cela à l'aide d'une macro?
Ce commentaire a été minimisé par le modérateur sur le site
Salut chris,
Le code a été mis à jour avec le problème résolu, veuillez essayer. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Salut chris,

Je suis tombé sur le même problème.
Actuellement, les codes sont utilisés dans le module "beforesave".
Ce qui signifie que l'e-mail enverra la feuille de calcul préalablement enregistrée.

Il existe un autre module "aftersave".
J'ai appliqué le code dans ce module et cela a fonctionné comme un charme.
Ce commentaire a été minimisé par le modérateur sur le site
Comment cela serait-il géré pour un document Office 365. Il enregistre automatiquement.
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il un moyen de chiffrer automatiquement l'e-mail automatisé ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Mike,
Désolé, je ne peux pas aider à résoudre ce problème. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Salut! Merci beaucoup pour cette ligne directrice :-) J'aimerais faire quelque chose de plus dans ce code - envoyer un e-mail en fonction des pays. Cela signifie que je dois créer des commandes avec if et select. À droite? J'ai déjà supprimé la pièce jointe de l'e-mail. Je voudrais ajouter le lien avec le chemin dans le dossier à la place. Mais lors de l'exécution de la macro, la commande n'est pas valide :-(
J'apprécie chaque aide pour l'ajouter ici.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour - Comment puis-je inclure des données cellulaires dans le champ "cc" de l'e-mail ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Brent,
Supposons que vous souhaitiez inclure la valeur dans la cellule a7 dans le champ "cc" de l'e-mail, veuillez essayer le VBA ci-dessous.

Private Sub Workbook_AfterSave (ByVal Success As Boolean)

'Mis à jour par Extendoffice 20200628

Dim xOutApp en tant qu'objet

Estomper xMailItem en tant qu'objet

Dim xName As String

On Error Resume Next

Set xOutApp = CreateObject("Outlook.Application")

Définir xMailItem = xOutApp.CreateItem(0)

xName = ActiveWorkbook.FullName

Avec xMailItem

.To = "Adresse e-mail"

.CC = Plage("a7").Valeur


.Subject = "Le classeur a été enregistré"

.Body = "Salut," & Chr(13) & Chr(13) & "Le fichier est maintenant mis à jour."

.Attachments.Add xName

.Afficher

'.envoyer

Terminer par

Définir xMailItem = Rien

Définir xOutApp = Rien

End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Chers tous, quelqu'un peut-il m'aider, je suis novice en codage VBA, j'ai fait quelques modifications, mais comment puis-je envoyer un e-mail si le classeur est enregistré et si le nom d'utilisateur est différent, comme si le nom d'utilisateur de la station est glade2 puis envoyez un e-mail si le classeur est enregistré, sinon ne l'envoyez pas.

Merci beaucoup pour ton aide
Ce commentaire a été minimisé par le modérateur sur le site
Salut Florin,
Je n'ai pas compris votre point de vue. Que représente votre nom d'utilisateur ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Crystal, merci pour votre réponse, usernane est usernane d'environnement, et je l'ai fait, j'ai utilisé une fonction if et exit sub.
Merci beaucoup.
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés