IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Copier Coller Tableau Excel dans corps de mail


Sujet :

VBA Outlook

  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 16
    Par défaut Copier Coller Tableau Excel dans corps de mail
    Bonjour,

    Je suis en train de coder une macro permettant d'envoyer un mail avec une pièce jointe. Jusque là, tout va bien.

    Cependant, à celà j'aimerais pouvoir coller dans le corps du mail(en bitmap) un tableau copié depuis la feuille excel.

    Voici le code utilisé (la ligne qui renvoie l'erreur est en gras):


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Set myApp = CreateObject("Outlook.Application")
    Set myItem = myApp.CreateItem(olMailItem)
    
    myItem.Subject = ThisWorkbook.Sheets("SQL").Range("Name").Text & ": performance on " & ThisWorkbook.Sheets("SQL").Range("ToDay").Text & ""
    
    Range("PerfReportForMail").Select
    Selection.Copy
    
    myItem.Body = Selection.PasteSpecial(Format:="Bitmap", Link:=False, DisplayAsIcon:=False)
    
    With myItem
        .SentOnBehalfOfName = "blabla@yahoo.fr"
    End With
    
    
    myItem.Attachments.Add "Z:\Appli\Gts\Dev\GTS_ALPHALIB\Excel\Performance Report.xlsm"
    
    'myItem.to = ThisWorkbook.Sheets("SQL").Range("MailingList")
    myItem.to = "blabla@yahoo.fr"
    myItem.Display
    myItem.Send


    Si quelqu'un a une solution, il est le bienvenuu

    Merci.

  2. #2
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Quelle version de outlook ? Quel est le format des EMAILs (html, brut, rtf) ?
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 16
    Par défaut
    Bonjour Oliv,

    Outlook 2010

    Pour le format je ne sais pas ce que veulent dire ces termes, je m'en excuse. Si cela peut t'aider, j'aimerais simplement que le tableau que je selectionne sur ma feuille excel soit collé en format image (bitmap quand on fait un Paste Special).

    Merci d'avance.

  4. #4
    Membre Expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Par défaut
    Bonjour,

    que donne l'option Wordeditor.range.paste?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set outlookwordeditor = myitem.GetInspector.WordEditor
    outlookwordeditor.Range.PasteAndFormat wdFormatOriginalFormatting

  5. #5
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 16
    Par défaut
    Merci Christophe.
    C'est nikel, ça marche.

    Merci à toi Oliv également.

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Par défaut
    Bonjour,

    Je suis également intéressé par cette fonction la, j'écume le net depuis plusieurs heure deja...
    mah.ngaz peux tu remettre ton code complet stp?

    Car pour la variable outlookwordeditor, je en sais pas comment la déclarer ainsi que les différent paramétres ou j'ai des erreurs sur plusieurs d'entre eux, notamment celui-ci "wdFormatOriginalFormatting"...

  7. #7
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    C'est sans doute lié à ta version de outlook !!
    cela fonctionne pour OL2010
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  8. #8
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Par défaut
    J'ai egalement OL 2010, donc ça doit surement fonctionner, c'est juste que je ne sais pas comment utiliser dans vba lces deux ligne... J'ai essayé de cette maniere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Sub creer_Mail()
     
    Dim text1
    Dim outlookwordeditor
    Dim appOutlook As Outlook.Application
    Dim oMail As Outlook.MailItem
     
     Set appOutlook = CreateObject("Outlook.Application")
     Set oMail = appOutlook.CreateItem(olMailItem)
    Sheets("Report Title").Cells(10, 1).Select
    Selection.Copy
    Set outlookwordeditor = oMail.GetInspector.WordEditor
    oMail.Body = outlookwordeditor.Range.PasteAndFormat(Type:=wdFormatOriginalFormatting)
    oMail.Display
    End Sub
    Mais le mail qui s'affiche est vide....

  9. #9
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Sub creer_Mail()
     
    Dim text1
    Dim outlookwordeditor
    Dim appOutlook As Outlook.Application
    Dim oMail As Outlook.MailItem
     
     Set appOutlook = CreateObject("Outlook.Application")
     Set oMail = appOutlook.CreateItem(olMailItem)
    Sheets("Report Title").Cells(10, 1).Select
    Selection.Copy
    Set outlookwordeditor = oMail.GetInspector.WordEditor
    outlookwordeditor.Range.PasteAndFormat(Type:=wdFormatOriginalFormatting)
    oMail.Display
    End Sub
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    Bonjour,

    j'ai utilisé le cde de carden752, et il marche très bien. Cependant, je souhaiterai insérer également du texte dans le corps de mon mail, et lorsque j'utilise ce code, mon texte s'efface... Comment y remédier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
         With olMail
            .To = mail
            .Subject = "Récapitulatif données clients au " & Format(Date, "dd/mm/yy")
            .HTMLBody = " <p style='text-align:center;font-weight:bold;'> Bonjour " & prenom & " " & nom & ", </p> " _
                & "<p> Vous trouverez ci-joint les données concernant ... </p>" _
                & "<p> Cordialement </p>"
                '& MessagEnHtml(rng)
        End With
     
        Set outlookwordeditor = olMail.GetInspector.WordEditor
        outlookwordeditor.Range.PasteAndFormat wdFormatOriginalFormatting

    Merci !!

  11. #11
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    et en passant par la solution proposee dans la pour l'envoi d'une plage de cellules ?

    http://excel.developpez.com/faq/?pag...geCellulesMail

    Tu y colles ton texte + ton tableau.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  12. #12
    Membre confirmé
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Par défaut
    Salut,

    merci pour ta réponse, mais j'envoie des tableaux assez important et surtout à environ 1 000 personnes, donc le temps que la macro boucle sur toute les lignes et colonnes ça prend du temps, donc je voulais savoir s'il n'y avait pas une façon optimisé défaire cela.

    Merci

  13. #13
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Si tu avais lu l'item jusqu'au bout tu aurais pu voir que tu peux preciser une plage directement

    Sinon, en faisant une rapide recherche, je retombe sur ma contribution pour le code evolue :
    http://www.developpez.net/forums/d96...omplement-faq/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] copier un tableau excel dans un autre classeur
    Par mc guill dans le forum Excel
    Réponses: 1
    Dernier message: 15/08/2010, 12h13
  2. inserer des données Excel dans corps du mail
    Par Bernard67 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 08/01/2009, 08h54
  3. comment copier un tableau excel dans une presentation sur meme format ?
    Par petitchat_miau dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 11/11/2008, 18h30
  4. Réponses: 2
    Dernier message: 24/10/2007, 11h44
  5. [VBA] Insérer Tableau Excel dans Corps d'un Mail (Outlook)
    Par savior dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/10/2006, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo