VBA excel, générer un mail avec comme piéce jointe un feuille d'un fichier xls

Aimedija

XLDnaute Nouveau
Bonjour,

je débute à coder sur VBA excel et j'ai pu récupérer le code ci-dessous afin d'envoyer des fichiers en pièces jointes. Seriez vous à même de m'aider à modifier ce code afin qu'il envois uniquement une feuille désigner d'un fichier xls? Un grand merci d'avance

Sub SendEMailwithAttachments()

Dim ol As Object, myItem As Object

Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(olMailItem)

myItem.To = "Toto@toto.com"
myItem.Subject = "Test Mail"
myItem.Body = "Hello Word." & Chr(13) & Chr(13) & "Bye All"

Set myAttachments = myItem.Attachments
myAttachments.Add "C:\mes documents\Toto1.xls"

MsgBox "Now sending to " & myItem.To
myItem.Send
Set ol = Nothing

End Sub
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir Aimedija et bienvenue sur XLD :)

Il faut ajouter ceci

Sheets("Staple1600").Activate :D (à modifier bienentendu par le nom de la feuille que tu veux copier)
Activesheet.Copy
chemin = "C:\mes documents\"
nom = Activesheet.Name & ."xls"
Activesheet.SaveAs Filename:= chemin & nom FileFormat:=xlExcel8

myAttachments.Add chemin & nom
 

Staple1600

XLDnaute Barbatruc
Re

@Lone-wolf
C'est surtout que selon la version d'Excel, pas besoin de macro.
Une QAT personnalisée suffira.
01QATb.jpg
 
Dernière édition:

Aimedija

XLDnaute Nouveau
Bonjour Staples 1600,

Je dispose de la version 2013, mais j'aurais vraiment besoin de le faire sous macro. merci

Bonjour Lone Wolf,

Merci pour le code mais j'ai un peu de mal à l'intégrer au premier étant donner que des sections se répètes, pourrais tu essayer de mieux m'éclairer?

merci d'avance,
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Aimedija, Jean Marie :)

@Aimedija: tu copie une feuille oui, mais une fois enregistré ça devient un classeur.

VB:
Option Explicit

Sub SendEMailwithAttachments()
Dim ol As Object, myItem As Object
Dim chemin$, nom$

    Application.ScreenUpdating = False
    Set ol = CreateObject("outlook.application")
    Set myItem = ol.CreateItem(olMailItem)

    'Il faut d'abord activer la feuille à envoyer
    ActiveSheet.Copy

    chemin = "C:\Users\" & Environ("UserName") & "\Documents\"
    nom = "Toto1.xls"

    ActiveSheet.SaveAs Filename:=chemin & nom, FileFormat:=xlExcel8
    ActiveWorkbook.Close True

    myItem.To = "Toto@toto.com"
    myItem.Subject = "Test Mail"
    myItem.Body = "Hello Word." & Chr(13) & Chr(13) & "Bye All"

    Set myAttachments = myItem.Attachments
    myAttachments.Add chemin & nom

    MsgBox "Now sending to " & myItem.To
    myItem.display
    Set ol = Nothing

End Sub
 
Dernière édition:

Discussions similaires