Envoyer une feuille Excel par mail

Bonjour,

j'ai besoin de votre aide. J'ai préparé un bon de commande que je dois envoyer par mail. Ce bon de commande est à envoyer deux ou trois fois par semaine à la même adresse. Seule la feuille Excel change de contenu, mais il s'agit toujours de la feuille nommée Liste(2).

Je suis arrivé à mettre la ligne VBA : application.dialogs(xldialogsendmail).show ("monDestinataire@abcd.com")

cela fonctionne, mais ouvre la boite d'envoi de Outlook et inscrit l'adresse de mon destinataire en A: mais j'aimerais que le mail parte sur la seule action du bouton que j'ai créé.

Pouvez vous m'aider ?

Je vous en remercie

Bonjour,

voici un exemple,

Il faut activer la référence "Microsoft Outlook Library" Avant d'exécuter cette macro

Sub Mail_ClasseurActif_Outlook()
    Dim OutApp As Object
    Dim OutMail As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    With OutMail
        .To = "monDestinataire@abcd.com"
        .CC = ""
        .BCC = ""
        .Subject = "Le Sujet"
        .Body = "Hello!"
'        .Attachments.Add (fichier)
'        .display
        .send
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Merci beaucoup. Je n'espérais pas une réponse aussi rapide !

Éncore une petite demande , comment n'envoyer que la feuille courante , ici, liste(2), et non tout le classeur ?

re,

liste(2) est le nom de l'onglet ou une plage de cellule ?

Bonsoir, liste(2) est le nom de l'onglet.

je joins mon fichier.

Voici ce que je fais :

j'ai dans le premier onglet une liste de produits

je la recopie dans un second onglet afin de conserver ma liste entière

dans ce second onglet, j'indique les quantités dont j'ai besoin.

en cliquant sur le bouton "effacer les lignes vides", j'efface toutes les lignes pour lesquelles il n'y a pas de quantité, j'ai ainsi un bon de commande plus court et plus clair.

Le bouton suivant est pour envoyer on mail (le sujet de ces questions)

et enfin, j'efface la feuille de commande (liste(2) ce qui permet à chaque commande que l'onglet porte toujours le noms de liste(2)

re,

Voici un autre exemple,

Sub Test_Mail_ActiveSheet()
'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro
    Dim OutApp As Object
    Dim OutMail As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    chemin = ThisWorkbook.Path 'à adapter
    fichier = "Rapport.pdf"  'à adapter

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & fichier, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

    With OutMail
        .To = "destinataire@blabla.com"
        .CC = ""
        .BCC = ""
        .Subject = "Le Sujet"
        .Body = "Hello!"
        .Attachments.Add (chemin & fichier)
'        .Display
        .send
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
    Kill chemin & fichier
End Sub

merci beaucoup.

Je vais tenter d'essayer cette version demain, cr pour le moment je me suis pris avec ce truc et je n'arrive plus à me concentrer, en plus je dois effacer tout ce que j'ai essayé et qui ne fonctionne pas.

Donc je reprends cela demain matin, tête reposée et je reviendrai vers vous pour vous dire si cela fonctionne … ou pas !

encore merci et bonne fin de soirée

Bonjour,

je viens donc d'essayer.

Problème !

je n'ai rien changé à chemin

à fichier, j'ai mis "commande Hollande"

à To , j'ai mis mon adresse mail ( pour voir si ça fonctionne, je me l'envoie à moi - même)

et à .attachments.add, j'ai mis ("E:\commande Hollande.xlsm")

et c'est là que ça coince. L'erreur se situe sur cette ligne qui devient toute jaune.

Pouvez vous encore m'aider ?

Grand merci !

je joins mon fichier si cela peut vous aider.

re,

je crois que tu a joint le mauvais fichier ?

il n'y a pas de ligne comme celle-ci

.attachments.add ("E:\commande Hollande.xlsm")

Merci, je vais regarder.

Rechercher des sujets similaires à "envoyer feuille mail"