Accéder au contenu principal

Comment envoyer chaque feuille à différentes adresses e-mail depuis Excel ?

Author: Xiaoyang Last Modified: 2025-08-06

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
RemarqueDans le code ci-dessus :
  • 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.

A screenshot of the VBA code window for sending each sheet from Excel to a different email address in cell S1

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 :

A screenshot of new email messages in Outlook, each with an attached Excel sheet sent to different recipients

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 !

Send Personalized Emails feature

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

🤖 Kutools AI Aide : Révolutionnez l'analyse de données grâce à : Exécution intelligente   |  Générer du code  |  Créer des Formules personnalisées  |  Analyser des données et générer des graphiques  |  Appeler les Fonctions améliorées
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons   |  Supprimer les lignes vides   |  Combiner les colonnes ou cellules sans perdre de données   |  Arrondir...
Super RECHERCHEV : Recherche multi-critères    Recherche multi-valeurs  |   Recherche multi-feuilles   |   Correspondance floue ....
Liste déroulante avancée : Créer rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante avec sélection multiple ....
Gestionnaire de colonnes : Ajouter un nombre spécifique de colonnes  |  Déplacer des colonnes  |  Basculer l’état de visibilité des colonnes masquées  |  Comparer les plages & colonnes ...
Fonctionnalités à la une : Mise au point de la grille   |  Affichage de conception   |   Barre de formule améliorée    Gestionnaire de classeur & de feuille de calcul   |  Bibliothèque dAutoTexte (Auto Text)   |  Sélecteur de date   |  Fusionner les données   |  Chiffrer/Déchiffrer les cellules    Envoyer un e-mail par liste   |  Super Filtre   |   Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...) ...
Top15 des ensembles d’outils12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...)   |   Plus de50 types de graphiques (Diagramme de Gantt, ...)   |   Plus de40 formules intelligentes (Calculer lâge en fonction de la date de naissance, ...)   |   19 outils dinsertion (Insérer un code QR, Insérer une image depuis le chemin, ...)   |  12 outils de conversion (Convertir en mots, Conversion de devises, ...)   |  7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...)   |   ... et bien plus encore
Utilisez Kutools dans votre langue préférée: compatible avec l’anglais, l’espagnol, l’allemand, le français, le chinois et plus de40 autres langues !

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!