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 à l'essai
    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
    Points : 15
    Points
    15
    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 éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Quelle version de outlook ? Quel est le format des EMAILs (html, brut, rtf) ?

  3. #3
    Membre à l'essai
    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
    Points : 15
    Points
    15
    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 : 38
    Localisation : France, Haute Loire (Auvergne)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    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 à l'essai
    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
    Points : 15
    Points
    15
    Par défaut
    Merci Christophe.
    C'est nikel, ça marche.

    Merci à toi Oliv également.

  6. #6
    Membre du Club
    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
    Points : 54
    Points
    54
    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 éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    C'est sans doute lié à ta version de outlook !!
    cela fonctionne pour OL2010

  8. #8
    Membre du Club
    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
    Points : 54
    Points
    54
    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 éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    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

  10. #10
    Membre du Club
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Points : 58
    Points
    58
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 350
    Points
    34 350
    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.

  12. #12
    Membre du Club
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Points : 58
    Points
    58
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 350
    Points
    34 350
    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/

+ 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