Comment envoyer une plage de cellules par e-mail via Outlook à partir d'Excel ?
Avez-vous déjà rencontré un problème après avoir terminé un rapport dans une feuille de calcul, où vous devez envoyer une plage de cellules contenant des données importantes à un destinataire spécifique ? Existe-t-il des moyens rapides pour vous d'envoyer cette plage directement depuis Excel sans ouvrir Outlook ?
Envoyer une plage de cellules en tant que pièce jointe depuis Excel avec du code VBA
Envoyer une plage de cellules dans le corps de l'e-mail depuis Excel avec du code VBA
Envoyer une plage de cellules en tant que pièce jointe depuis Excel avec du code VBA
Le code VBA suivant peut vous aider à envoyer votre plage sélectionnée en tant que pièce jointe dans Excel. Veuillez procéder comme suit :
1. Ouvrez votre classeur, puis maintenez les touches ALT + F11 enfoncées pour ouvrir la fenêtre Microsoft Visual Basic for Applications.
2. Cliquez sur Insertion > Module, puis collez le code suivant dans la fenêtre Module.
Code VBA : envoyer une plage de cellules en tant que pièce jointe depuis Excel
Sub SendRange()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "skyyang@extendoffice.com"
.CC = ""
.BCC = ""
.Subject = "information of kte"
.Body = "hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Remarque : Dans le code ci-dessus, vous pouvez modifier les informations suivantes selon vos besoins.
- .To = "skyyang@extendoffice.com"
- .CC = ""
- .BCC = ""
- .Subject = "information de kte"
- .Body = "Bonjour, veuillez vérifier et lire ce document."
3. Ensuite, appuyez sur la touche F5 pour exécuter ce code, et une boîte de dialogue apparaîtra pour vous rappeler de sélectionner la plage que vous souhaitez envoyer. Voir capture d'écran :
4. Cliquez ensuite sur OK, et une autre boîte de dialogue apparaîtra. Une fois la barre de progression terminée, cliquez sur Autoriser, et la plage spécifique de cellules sera envoyée à votre destinataire en tant que pièce jointe.

Découvrez la magie d'Excel avec Kutools AI
- Exécution intelligente : Effectuez des opérations sur les cellules, analysez les données et créez des graphiques, le tout piloté par des commandes simples.
- Formules personnalisées : Générez des formules adaptées pour rationaliser vos flux de travail.
- Codage VBA : Écrivez et implémentez du code VBA sans effort.
- Interprétation des formules : Comprenez facilement des formules complexes.
- Traduction de texte : Surmontez les barrières linguistiques dans vos feuilles de calcul.
Envoyer une plage de cellules dans le corps de l'e-mail depuis Excel avec du code VBA
Si vous souhaitez envoyer une plage spécifique en tant que partie du corps du message depuis Excel, vous pouvez également appliquer le code VBA suivant pour résoudre ce problème.
1. Activez votre feuille de calcul et maintenez les touches ALT + F11 enfoncées pour ouvrir la fenêtre Microsoft Visual Basic for Applications.
2. Cliquez sur Insertion > Module, puis collez le code suivant dans la fenêtre Module.
Code VBA : envoyer une plage de cellules dans le corps de l'e-mail depuis Excel
Sub EmailRange()
'Update 20131209
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Please read this email."
.Item.To = "skyyang@extendoffice.com"
.Item.Subject = "information of kte"
.Item.Send
End With
Application.ScreenUpdating = True
End Sub
Remarque : Dans le code ci-dessus, vous pouvez modifier les informations suivantes selon vos besoins.
- .Introduction = "Veuillez lire cet e-mail."
- .Item.To = "skyyang@extendoffice.com"
- .Item.Subject = "information de kte"
3. Ensuite, appuyez sur la touche F5 pour exécuter ce code, et une boîte de dialogue apparaîtra pour vous rappeler de sélectionner la plage que vous souhaitez envoyer.
4. Cliquez ensuite sur OK, et une autre boîte de dialogue apparaîtra. Une fois la barre de progression terminée, cliquez sur Autoriser, et la plage spécifique de cellules sera envoyée à votre destinataire dans le corps du message.
Remarques :
1. Ces codes ne fonctionnent que si Outlook est configuré comme programme de messagerie.
2. Après avoir envoyé la feuille de calcul actuelle, vous pouvez aller dans Outlook pour vérifier si l'e-mail a bien été envoyé.
Articles connexes :
Comment envoyer uniquement une feuille de calcul via Outlook depuis Excel ?
Comment envoyer le classeur actuel via Outlook depuis Excel ?
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification 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é de50 %, et réduit des centaines de clics de souris pour vous chaque jour !