Microsoft 365 Envoi par mail: 1 adresse mail par onglet Excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Comptable 1

XLDnaute Nouveau
Bonjour à tous,

J'ai un fichier Excel, avec environs 20 onglets, et je souhaiterais envoyer chaque onglets séparément par mail (pas toujours les même adresses mail) de façon automatique.

Pensez vous que cela puisse se faire ? Et si oui, pourriez vous m'indiquer comment faire ?

En vous remerciant par avance

Bonne journée 🙂
 
Solution
Bonjour,
Oups, autant pour moi. Essaie :
VB:
Sub Mail()
  Dim olApp As Object, M As Object, Sh As Worksheet, Wbk As Workbook, Txt As String
  Set olApp = CreateObject("Outlook.application")
  For Each Sh In ThisWorkbook.Sheets
    Sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      Sh.Name, Quality:= _
      xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
      OpenAfterPublish:=False
    Set M = olApp.CreateItem(olMailItem)
    With M
      .Subject = "Objet"
      '.Body = "Body"
      .Recipients.Add Sh.[A1].Value
      .attachments.Add ThisWorkbook.Path & "\" & Sh.Name & ".pdf"
'      .display
      .Send
    End With
  Next Sh
End Sub
Bonjour,

Merci pour le retour rapide !

Je ne comprends pas, car le PDF se créer lorsque je lance la macro, il ne devrait pas s'enregistrer où se situe mon classeur ?

Parce que du coup j'ai utiliser cette macro sur plusieurs fichiers

A la base mon classeur était dans mes téléchargements, et je l'ai déplacé dans un autre dossier.

Merci
 
Essaie comme ça :

VB:
Sub Mail()
  Dim olApp As Object, M As Object, Sh As Worksheet, Wbk As Workbook, Txt As String
  Set olApp = CreateObject("Outlook.application")
  For Each Sh In ThisWorkbook.Sheets
    Sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      ThisWorkbook.Path & "\" & Sh.Name, Quality:= _
      xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
      OpenAfterPublish:=False
    Set M = olApp.CreateItem(olMailItem)
    With M
      .Subject = "Objet"
      '.Body = "Body"
      .Recipients.Add Sh.[A1].Value
      .attachments.Add ThisWorkbook.Path & "\" & Sh.Name & ".pdf"
'      .display
      .Send
    End With
  Next Sh
End Sub

Daniel
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
1 K
Réponses
17
Affichages
2 K
Réponses
1
Affichages
525
Retour