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 clic !

Fatigué d'envoyer des e-mails clients un par un ? Avec la fonction « 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 des 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-mail pour une efficacité maximale
- 🎨 Éditeur WYSIWYG 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é pour Office
Améliorez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité incomparable. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte l’interface par onglets à Office, simplifiant considérablement 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 chaque jour !
Tous les modules complémentaires Kutools. Une seule installation
La suite Kutools for Office regroupe les modules complémentaires pour Excel, Word, Outlook & PowerPoint ainsi qu’Office Tab Pro, idéal pour les équipes travaillant sur plusieurs applications Office.





- Suite tout-en-un — modules complémentaires Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Un installateur, une licence — installation en quelques minutes (compatible MSI)
- Une synergie optimale — productivité accélérée sur l’ensemble des applications Office
- Essai complet30 jours — sans inscription, ni carte bancaire
- Meilleure valeur — économisez par rapport à l’achat d’add-ins individuels