Comment envoyer une plage de cellules par e-mail via Outlook depuis Excel ?
Dans le cadre de votre travail quotidien avec Excel, il est courant de finaliser un rapport, puis de devoir partager uniquement une partie des données avec un destinataire précis. Par exemple, vous souhaiterez peut-être transmettre des informations clés issues d’une plage de cellules sélectionnée plutôt que l’intégralité du classeur, afin de préserver à la fois la confidentialité et la pertinence. Naturellement, la plupart des utilisateurs privilégient des solutions qui évitent d’avoir à basculer manuellement vers Outlook ou à recourir au copier-coller. Existe-t-il des méthodes pratiques et efficaces pour envoyer directement depuis Excel une plage de cellules définie ?
Ce tutoriel vous présente plusieurs méthodes efficaces pour envoyer ou transférer par e-mail des cellules sélectionnées via Outlook, combinant à la fois des solutions VBA et les fonctionnalités natives d’Excel afin d’optimiser votre flux de travail et de minimiser les tâches manuelles. Vous y découvrirez comment envoyer une plage en pièce jointe, insérer directement les cellules dans le corps du message, enregistrer les plages sous forme d’images ou de fichiers PDF avant leur envoi, ainsi que l’utilisation des anciennes fonctions de messagerie intégrées à Excel. Le guide détaille également les étapes clés de configuration, analyse différents scénarios d’usage, propose des conseils de dépannage et partage des recommandations pratiques pour des résultats optimaux.
Envoyer une plage de cellules en pièce jointe depuis Excel à l’aide d’un code VBA
Envoyer une plage de cellules dans le corps du message depuis Excel à l’aide d’un code VBA
Envoyer une plage de cellules en pièce jointe depuis Excel à l’aide d’un code VBA
Si vous souhaitez partager uniquement un ensemble précis de données sans donner accès à l’intégralité du classeur, vous pouvez extraire une plage de cellules spécifique et l’envoyer en pièce jointe — par exemple au format .xlsx ou .xls — directement via Outlook. Cette approche s’avère particulièrement utile lorsque le destinataire n’a besoin de consulter qu’une section du rapport ou lorsque la confidentialité des données est primordiale. Les étapes suivantes détaillent comment configurer et utiliser le code VBA pour automatiser ce processus :
1. Ouvrez votre classeur Excel cible, puis appuyez sur ALT + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications, où vous pouvez insérer et modifier du code VBA.
2. Cliquez sur Insertion > Module, ce qui crée un nouveau module pour votre code. Collez le script ci-dessous dans la fenêtre du module.
Code VBA : envoyer une plage de cellules en 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 Conseils et personnalisations :
- .ToÀ
- .CCet .BCCpeuvent être définis pour une copie carbone ou une copie carbone invisible selon vos besoins.
- .Subjectet .Bodyvous permettent de personnaliser le message électronique.
3. Appuyez sur F5 pour exécuter le code. Une invite de sélection s’affiche : indiquez la plage que vous souhaitez envoyer par e-mail (n’oubliez pas de vérifier les données avant l’envoi). Voir la capture d’écran ci-dessous :

4. Après avoir cliqué sur OK, une boîte de progression ou une notification de permission s’affiche. Une fois l’opération terminée, cliquez sur Autoriser. La plage de cellules sélectionnée sera envoyée à votre destinataire sous forme de pièce jointe Excel.

Précautions et dépannage :
- Si Outlook n’est pas défini comme programme de messagerie par défaut ou s’il n’est pas en cours d’exécution, le code risque de ne pas fonctionner correctement.
- Vérifiez que les paramètres de sécurité des macros autorisent l’exécution des scripts VBA. Vous devrez peut-être activer les macros ou ajuster les réglages du Centre de gestion de la confidentialité.
- Le type de la pièce jointe dépend de la source « Type de fichier » et de la ligne spécifiée dans le code VBA.
- Après l’envoi, consultez votre dossier Outlook « Éléments envoyés » pour confirmer la livraison.
Cette approche est idéale pour le partage sécurisé de données, l’archivage de documents et toute situation exigeant la préservation de la mise en forme originale d’Excel. Toutefois, les destinataires devront disposer d’un logiciel adapté pour ouvrir les fichiers en pièce jointe.
Envoyer une plage de cellules dans le corps du message depuis Excel à l’aide d’un code VBA
Lorsque vous souhaitez que les destinataires consultent immédiatement les informations sans avoir à télécharger de pièces jointes – par exemple pour des résumés périodiques ou des mises à jour d’avancement – intégrez directement la plage de cellules sélectionnée dans le corps de l’e-mail. Cette approche améliore non seulement l’accessibilité, mais rend aussi les informations plus claires, plus faciles à lire et plus rapides à traiter.
1. Basculez vers la feuille de calcul contenant vos données, puis appuyez sur ALT + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
2. Cliquez sur Insertion > Module pour ouvrir une fenêtre de module, puis collez le code suivant :
Code VBA : envoyer une plage de cellules dans le corps du message depuis Excel
Sub EmailRange()
'Update by Extendoffice
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 Remarques sur les paramètres et ajustements pratiques :
- .Introductionvous permet d’inclure un message avant la plage elle-même.
- .Item.Todoit être mis à jour avec votre Adresse e-mail souhaité.
- .Item.Subjectpeut être modifié afin de correspondre à l’objet de votre rapport ou de votre e-mail.
3. Exécutez la macro à l’aide de F5. Lorsque vous y êtes invité, sélectionnez la plage de cellules que vous souhaitez envoyer.

4. Confirmez votre sélection et cliquez sur OK. Surveillez les éventuelles invites de sécurité. Une fois le traitement terminé, cliquez sur Autoriser pour autoriser la macro. La plage sélectionnée apparaîtra directement dans le corps de votre e-mail Outlook, formatée sous forme de tableau.

Points clés à retenir :
- Cette solution exige qu’Outlook soit installé et configuré comme client de messagerie par défaut.
- Activez les macros dans Excel afin d’exécuter correctement le code VBA. En cas d’erreur, vérifiez les paramètres des macros dans le Centre de gestion de la confidentialité.
- La mise en forme est conservée ; toutefois, les formats de cellule complexes peuvent s’afficher différemment dans l’e-mail qu’ils ne le font dans Excel.
- Consultez le dossier Boîte d’envoi ou Éléments envoyés dans Outlook pour vous assurer que votre message a bien été envoyé.
Cette approche s’impose naturellement pour les mises à jour d’état d’équipe, le partage rapide de données ou la diffusion de chiffres clés auprès de collègues ou de clients en quête d’une lisibilité immédiate.
Autres méthodes intégrées d’Excel – Utilisez la fonctionnalité intégrée « Envoyer à un destinataire de messagerie » pour envoyer les cellules sélectionnées dans le corps du message
Certaines anciennes versions d’Excel (antérieures à Office 365) proposaient un bouton intégré intitulé « Envoyer à un destinataire de messagerie », permettant d’envoyer rapidement les cellules sélectionnées directement dans le corps d’un e-mail, sans avoir besoin de code VBA. Bien que cette fonctionnalité soit désormais masquée par défaut dans les versions récentes d’Excel, elle reste accessible en personnalisant la barre d’outils Accès rapide. Cette solution s’adresse particulièrement aux utilisateurs d’installations Excel héritées ou à ceux qui souhaitent éviter l’utilisation de macros.
Comment l’activer et l’utiliser :
- Cliquez avec le bouton droit sur la barre d’outils Accès rapide (située au-dessus de votre ruban) et sélectionnez Personnaliser la barre d’outils Accès rapide.
- Dans la liste des commandes, remplacez « Choisir les commandes dans : » par Toutes les commandes.
- Faites défiler vers le bas et ajoutez Envoyer à un destinataire de messagerie à votre barre d’outils Accès rapide.
- Une fois la configuration terminée, sélectionnez les cellules que vous souhaitez envoyer. Cliquez sur l’icône Envoyer à un destinataire de messagerie : Excel ouvre une fenêtre d’e-mail intégrée avec votre sélection directement insérée dans le corps du message. Ajoutez les destinataires, l’objet, puis envoyez en un clic !
Remarques importantes :
- Cette méthode exige qu’Outlook soit configuré comme client de messagerie par défaut.
- L’utilisation de la fenêtre d’e-mail intégrée peut différer de la rédaction habituelle dans Outlook ; veillez donc à bien vérifier la mise en forme.
- Cette fonctionnalité peut être désactivée ou absente dans certaines versions d’Excel, notamment les versions récentes d’Office 365. Si tel est le cas, envisagez des solutions alternatives, comme l’utilisation de code VBA ou l’exportation en PDF ou en image.
Avantages et inconvénients :
- Solution ultra-rapide et simplissime pour les versions prises en charge : aucune programmation ni configuration avancée requise.
- Non disponible dans toutes les versions ; les utilisateurs d’Excel récent pourraient devoir recourir à des méthodes alternatives.
Articles associés :
Comment envoyer une seule feuille de calcul par Outlook depuis Excel ?
Comment envoyer le classeur actuel par Outlook depuis Excel ?
Meilleurs outils de productivité Office
Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre 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 rend votre travail bien plus facile
- Activez 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 vous fait économiser des centaines de clics de souris chaque jour !
Tous les compléments Kutools. Un seul installateur
Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.
- Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
- Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
- Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
- Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
- Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels