Comment envoyer chaque feuille à différentes adresses e-mail depuis Excel ?
Si vous avez un classeur Excel contenant plusieurs feuilles de calcul, chacune ayant une adresse e-mail dans la cellule S1, vous pourriez vouloir envoyer chaque feuille en tant que pièce jointe séparée à son destinataire respectif. Cette tâche peut être fastidieuse si elle est effectuée manuellement, surtout lorsque vous traitez un grand nombre de feuilles. Dans ce tutoriel, nous allons vous montrer comment utiliser du code VBA pour envoyer automatiquement chaque feuille de votre fichier Excel en pièce jointe à l'adresse e-mail spécifiée dans la cellule S1 de chaque feuille.
Envoyer chaque feuille à différentes adresses e-mail depuis Excel avec du code VBA
Le code VBA suivant vous permettra d'envoyer chaque feuille de calcul en tant que pièce jointe au destinataire correspondant listé dans la cellule S1. Veuillez suivre ces étapes :
1. Appuyez simultanément sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic for Applications.
2. Ensuite, cliquez sur Insérer > Module, et copiez-collez le code VBA ci-dessous dans la fenêtre.
Code VBA : Envoyer chaque feuille en tant que pièce jointe à différentes adresses e-mail
Sub Mail_Every_Worksheet()
'Updateby ExtendOffice
Dim xWs As Worksheet
Dim xWb As Workbook
Dim xFileExt As String
Dim xFileFormatNum As Long
Dim xTempFilePath As String
Dim xFileName As String
Dim xOlApp As Object
Dim xMailObj As Object
On Error Resume Next
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
xTempFilePath = Environ$("temp") & "\"
If Val(Application.Version) < 12 Then
xFileExt = ".xls": xFileFormatNum = -4143
Else
xFileExt = ".xlsm": xFileFormatNum = 52
End If
Set xOlApp = CreateObject("Outlook.Application")
For Each xWs In ThisWorkbook.Worksheets
If xWs.Range("S1").Value Like "?*@?*.?*" Then
xWs.Copy
Set xWb = ActiveWorkbook
xFileName = xWs.Name & " of " _
& VBA.Left(ThisWorkbook.Name, VBA.InStr(ThisWorkbook.Name, ".") - 1) & " "
Set xMailObj = xOlApp.CreateItem(0)
xWb.Sheets.Item(1).Range("S1").Value = ""
With xWb
.SaveAs xTempFilePath & xFileName & xFileExt, FileFormat:=xFileFormatNum
With xMailObj
'specify the CC, BCC, Subject, Body below
.To = xWs.Range("S1").Value
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add xWb.FullName
.Display
End With
.Close SaveChanges:=False
End With
Set xMailObj = Nothing
Kill xTempFilePath & xFileName & xFileExt
End If
Next
Set xOlApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
- S1 est la cellule qui contient l'adresse e-mail à laquelle vous souhaitez envoyer l'e-mail. Si vos adresses e-mail sont dans une autre cellule, comme A1, vous pouvez modifier le code pour refléter ce changement.
- Vous pouvez spécifier le CC, CCI, Objet, Corps selon vos besoins dans le code ;
- Pour envoyer l'e-mail directement sans ouvrir la fenêtre de nouveau message suivante, vous devez remplacer .Display par .Send.
3. Ensuite, appuyez sur la touche F5 pour exécuter ce code, et chaque feuille est insérée automatiquement dans la nouvelle fenêtre de message en tant que pièce jointe, voir capture d'écran :
4. Enfin, cliquez sur le Envoyer pour envoyer chaque e-mail un par un.
Kutools pour Excel : Envoyez facilement des e-mails personnalisés en un seul clic !

Fatigué d'envoyer des e-mails clients un par un ? Avec la fonctionnalité « Envoyer un e-mail » de Kutools pour Excel, la communication devient plus rapide et plus professionnelle ! Il suffit de préparer une feuille Excel avec les noms, adresses e-mail, codes d’enregistrement, et d’insérer des espaces réservés — le système générera automatiquement des e-mails personnalisés et enverra des centaines d’e-mails en un seul clic. Fini le travail répétitif !
- 💡 Les espaces réservés dynamiques (par exemple, nom, code d’enregistrement) remplissent automatiquement le contenu personnalisé pour chaque destinataire, garantissant que chaque e-mail semble unique.
- 📎 Joignez des fichiers personnalisés pour un envoi précis
- 📤 Intègre parfaitement Outlook pour un envoi sécurisé et fiable
- 📝 Enregistrez et réutilisez des modèles d'e-mails pour une efficacité maximale
- 🎨 Éditeur WYSIWYG (What-you-see-is-what-you-get) facile à utiliser
- 🖋 Utilise votre signature Outlook — aucun paramétrage supplémentaire, il suffit d’appuyer sur envoyer !
- Obtenez Kutools pour Excel maintenant !
Meilleurs outils de productivité Office
Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...
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, au lieu d’ouvrir de nouvelles fenêtres.
- Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!