Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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

Comptable 1

XLDnaute Nouveau
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
 

danielco

XLDnaute Accro
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
 

Discussions similaires

Réponses
16
Affichages
597
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…