EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau dans corps du message

[sociallocker id=5467][/sociallocker]

EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau dans corps du message

Excel 2007 Envoi e-mail Outlook via Excel VBA avec tableau dans corps de texte

Comment envoyer un tableau dans le corps d’un e-mail Outlook en VBA avec Excel de moins de 7 min.

 

 

 

 

EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau dans corps du message

Version Dailymotion :


EXCEL_2007_OUTLOOK_VBA_TABLEAU_CORPS_MAIL

 

Exemple de l’interface facture : J’ai repris la vidéo sur EXCEL_2007_OUTLOOK_ Envoi mail_VBA_PIECE_JOINTE, que j’ai modifié afin de faire un exemple insertion de tableau, issue d’une plage de cellule d’une des feuilles du fichier Excel pour le corps du message Outlook via Excel VBA.

1) Pour l’ envoi e -mail : Il y à quelques paramètres à regarder, comme dans le VBA, menu outils– références et cocher comme ci-dessous : 0) Cocher les options Adobe Acrobat et Outlook 14.0 object librairy :

EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau corps du message

Excel 2007 Envoi e-mail Outlook via Excel VBA avec pièce jointe

2) Aperçu lors de la génération de l’e-mail par VBA Excel : Le lancement de la macro, génère le pré-remplissage des champs en mode .display sur code source VBA. Aperçu de la sélection du tableau :

EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau corps du message

Excel 2007 Envoi e-mail Outlook via Excel VBA avec tableau dans corps de texte

3) Exemple de génération en mode .display (Code VBA ) fichier reçu (destinataire) :   pré -remplissage du message sur le fichier Excel…

EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau corps du message

Excel 2007 Envoi e-mail Outlook via Excel VBA avec tableau dans corps de texte

 

EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau corps du message

Excel 2007 Envoi e-mail Outlook via Excel VBA avec tableau dans corps de texte

4) Exemple de fichier reçu (destinataire) :   Voilà le résultat pour le destinataire, avec une messagerie Outlook…

EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau corps du message

Excel 2007 Envoi e-mail Outlook via Excel VBA avec tableau dans corps de texte

5) Exemple de fichier reçu (destinataire) :   Voilà le résultat pour le destinataire, avec une messagerie Gmail…

EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau corps du message

Excel 2007 Envoi e-mail Outlook via Excel VBA avec tableau dans corps de texte

Code source VBA :  sans doute à optimiser, mais voilà comment je l’ai réalisé

EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau corps du message

Excel 2007 Envoi e-mail Outlook via Excel VBA avec tableau dans corps de texte

Voilà le fichier Excel : EXCEL_2007_OUTLOOK_VBA_TABLEAU_CORPS_MAIL

N’hésitez pas à m’écrire à contact.ingideo@gmail.com , si cela vous plaît, ou si vous avez des questions. Pour s’inscrire à la newsletter, suivez ce lien.

SPECIAL PACK OUTLOOK : 

Liens vers le fichier spécial pack compilation OUTLOOK 

 

Recevoir la newsletter

Inscrivez-vous maintenant et recevez un e-mail les fois où je publie du contenu.

I agree to have my personal information transfered to AWeber ( more information )

Je hais les spams. Vous pouvez vous désinscrire à tout moment.

Pour marque-pages : Permaliens.

12 réponses à EXCEL OUTLOOK – Envoi mail: Macro excel envoi email avec tableau dans corps du message

  1. Article interessant même si je ne suis pas d’accord à 100%

    • Alexandre dit :

      Merci, je suis un autodidacte, n’hésitez pas à m’éclairer pour faire mieux.

  2. Vous avez fait une démonstration magistrale ! merci

  3. Charlie dit :

    Bonjour,

    Je voudrais pouvoir faire exactement la même chose mais en envoyant le courriel depuis Windows Live Mail.

    Est-ce que c’est possible ?

    Merci

  4. Kos dit :

    Bonjour,
    Jai fait ceci et ca ne marche pas, j’ai un message qui me dit « Erreur de compilation, type défini par l’utilisateur non défini »
    Que dois-je faire?
    Merci d’avance

    Option Explicit
    Sub SendEmailUO_TABLEAU()
    ‘Utilise la liaison anticipée
    ‘Requiert une référence à la bibliothèque d’objets Outlook
    Dim OutlookApp As Outlook.Application
    Dim MItem As Outlook.MailItem
    Dim cell As Range
    Dim Projet, EmailAddr, EmailAddrCC, Msg, Subj As String
    Dim TEXTE_AVANT, TEXTE_APRES, ALERTE As String

    TEXTE_AVANT = Sheets(« Feuil1 »).Range(« C18 »)
    TEXTE_APRES = Sheets(« Feuil1 »).Range(« 20 »)
    ALERT = Sheets(« Feuil1 »).Range(« E5:E8 »)
    EmailAddr = Sheets(« Feuil1 »).Range(« B12 »)
    EmailAddrCC = Sheets(« Feuil1 »).Range(« B13 »)

    Sheets(« Feuil1 »).Select

    ‘Alerte date marché en cours
    Set OutlookApp = New Outlook.Application
    ‘Merci de trouver les marchés en dours dont l’échéance arrive à terme
    Subj = Sheets(« Feuil1 »).Range(« B14 »)

    ActiveSheet.Range(« C4:E8 »).Select ‘C18
    ActiveWorkbook.EnvelopeVisible = True
    Sheets(« Feuil1 »).Range(« C4:E8 »).Select
    Selection.Copy
    Msg = Msg & TEXTE_APRES ‘ la plage de cellules à envoyer cellule B12
    Msg = Msg & « Cordialement »
    Msg = Msg & « Céline KOSCIUSZKO »

    With ActiveSheet.MailEnvelope
    .Introduction = Msg
    .Item.To = EmailAddr
    .Item.CC = EmailAddreCC
    .Item.Subject = Subj
    .Item.Display
    ‘.Item.Send
    End With
    Set MItem = OutlookApp.CreateItem

    End Sub

    • Alexandre dit :

      Bonjour Céline,
      Je t’ai fais un retour ce matin, il manquait peu de chose, j’espère que le fichier exemple te plaira.
      Alexandre

  5. Spike29 dit :

    Bonjour !

    J’ai réussi a trouver un code VBA afin d’envoyer un mail+PJ ( page active du classeur) via Outlook + corps de texte.
    Les mails des destinataires sont dans la feuille n°2 de mon classeur ( renommée « MAIL’).
    Cependant, je n’arrive pas a utiliser ces adresses comme destinataire.

    WithOLmail
    .To = [B95]
    .CC = «  »
    .Subject = « Rapport

    avec .TO, je n’arrive pas lier autre chose qu’une cellule ou adresse mail…. j’aimerais en l’occurrence envoyer ce mail aux destinataires présents dans la feuill MAIL.

    ci-dessous l’ensemble du code.

    SubSendWithAtt()

    ‘ Nécessite la référence : Microsoft Outlook 1x Object Library
    Dim olApp As Outlook.Application
    Dim OLmail As MailItem
    Dim CurFile As String

    Set olApp = New Outlook.Application
    Set OLmail = olApp.CreateItem(olMailItem)
    ‘ « C:\Users\Thierry\AppData\Local\Temp\MaFeuille.pdf  »
    CurFile = ThisWorkbook.Path& « \ » & « RapportJournalierT4.Pdf »
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
    Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
    WithOLmail
    .To = [B95]
    .Subject = « Rapport Journalier  »
    .Body = « Bonjour, » & Chr(10) & Chr(13) & « Ci-joint le Rapport du  » &Format(Date, « dd/mm/yy ») & Chr(10) & Chr(13) & « Bonne réception, » & Chr(10) & Chr(13) & « Cordialement »
    .Attachments.AddCurFile
    ‘.Attachments.Add « c:\My Documents\book.doc »
    .Send
    End With
    MsgBox « Merci de vérifier que le message apparait dans -messages envoyés- dans votre messagerie OUTLOOK. »

    ‘ Effacer les variables objets
    Set OLmail = Nothing
    Set olApp = Nothing
    End Sub

    J’ai réussi à trouver une solution, grâce à ce code=> Dest = Sheets(« MAIL »).Range(« A1:A199 »).Value

    Cependant, avec ce dernier je n’arrive plus a envoyer de corps de mail….

    Avec la fonction SENDMAIL ça ne fonctionne pas.

    J’ai essayé de « bidouiller » en vain.

    Quelqu’un pour m’aider ??

    Par avance MERCI ! Ci dessous le code permettant d’envoyer mon mail à ma liste présente dans la feuilleMAIL mais … au détriment
    de mon corps de texte.

    Sub EnvoiMail2()

    Texte = Texte & « Bonjour, » & vbCrLf
    Texte = Texte & vbCrLf
    Texte = Texte & « Vous trouverez ci-joint  » & vbCrLf
    Texte = Texte & vbCrLf
    Texte = Texte & « Cordialement » & vbCrLf
    Texte = Texte & vbCrLf
    Texte = Texte & «  » & vbCrLf

    ‘ Loop to cycle through each cell in the specified range.
    For Each x In Range(« G15:G15 »)
    ‘ Change the text in the range to uppercase letters.
    x.Value = UCase(x.Value)
    Next

    Dest = Sheets(« MAIL »).Range(« A1:A199 »).Value

    Sujet = « Envoi d’une  »

    Body = Texte

    ActiveWorkbook.SendMail Dest, Sujet, True

    Application.DisplayAlerts = False

    Application.DisplayAlerts = True

    End Sub

    • Alexandre dit :

      Bonjour Emmanuel,
      Je t’ai fais un retour ce midi, il manquait peu de chose, j’espère que le fichier exemple te plaira.
      Alexandre

  6. Manon dit :

    Bonjour Alexandre,

    Tout d’abord, merci beaucoup pour cette macro qui fonctionne très bien !
    Petit détail : j’aimerai changer la police du corps de texte, mais je n’y arrive pas…
    Pourrais-tu m’aider ?

    Merci encore !

  7. Mary dit :

    Bonjour,
    Merci beaucoup pour cette vidéo, très claire et utile, mais j’ai le même problème que Manon…
    j’aimerai changer la police du corps de texte, mais je n’y arrive pas…

    Pouvez vous m’aider?

    Merci

  8. Franzi dit :

    Bonjour Alexandre,
    Merci pour ce tuto vraiment très clair et détaillé !
    Avec tes commentaires et explications, mon fils de 10 ans qui n’a jamais ouvert un PC pourrait s’en sortir 🙂
    Au top !!!

  9. Stéph. dit :

    Bonjour,
    Je voudrais savoir s’il y a la possibilité pour le destinataire d’effectuer des modifications sur le tableau et le renvoyer après modifs.
    Merci d’avance

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *